高精度减法c++实现 求高人指点
求各位高人指点求一段高精度减法的c++实现要求1主程序读入2个字符串类型的大数chara【】,charb【】,通过函数实现高精度减法。2高精度加法函数部分,从主程序得到2...
求各位高人指点
求一段高精度减法的c++实现
要求1主程序读入2个字符串类型的大数char a【】,char b【】,
通过函数实现高精度减法。
2高精度加法函数部分,从主程序得到2个参数char a【】,char b【】
进行高精度减法后,返回一个char c【】
别给我一个网址 让我参考类似的程序 我水平不高 求高人给我一段完整的代码 谢谢 求各位高人指点 展开
求一段高精度减法的c++实现
要求1主程序读入2个字符串类型的大数char a【】,char b【】,
通过函数实现高精度减法。
2高精度加法函数部分,从主程序得到2个参数char a【】,char b【】
进行高精度减法后,返回一个char c【】
别给我一个网址 让我参考类似的程序 我水平不高 求高人给我一段完整的代码 谢谢 求各位高人指点 展开
展开全部
#include<iostream>
using namespace std;
int a[102],b[102],c[102],i,j,p;
char s1[101],s2[101];
int change (char s[],int a[])//定义一个新函数,用于转换字符串到数组里
{
int len;
len=strlen(s);
for(int i=len-1,j=1;i>=0;i--,j++)
a[j]=s[i]-'0';
a[0]=len;
return 0;
}
int jian(int a[],int b[],int c[])//已经是a>b的前提
{
for(i=1;i<=a[0];i++)
{
c[i]=a[i]+10-b[i];
a[i+1]=a[i+1]-1+c[i]/10;
c[i]=c[i]%10;
}
c[0]=a[0];
while(c[0]==0&&c[0]>0) c[0]--;//处理答案的输出位数
return 0;
}
int out(int a[])
{
for(i=a[0];i>0;i--)
cout<<a[i];//输出的函数
return 0;
}
int main()
{ memset(a,0,sizeof(a));
memset(b,0,sizeof(a));
memset(c,0,sizeof(a));
cin>>s1>>s2;//s1必须大于s2
change(s1,a);
change(s2,b);
jian(a,b,c);
out(c);
system("pause");
return 0;
}
using namespace std;
int a[102],b[102],c[102],i,j,p;
char s1[101],s2[101];
int change (char s[],int a[])//定义一个新函数,用于转换字符串到数组里
{
int len;
len=strlen(s);
for(int i=len-1,j=1;i>=0;i--,j++)
a[j]=s[i]-'0';
a[0]=len;
return 0;
}
int jian(int a[],int b[],int c[])//已经是a>b的前提
{
for(i=1;i<=a[0];i++)
{
c[i]=a[i]+10-b[i];
a[i+1]=a[i+1]-1+c[i]/10;
c[i]=c[i]%10;
}
c[0]=a[0];
while(c[0]==0&&c[0]>0) c[0]--;//处理答案的输出位数
return 0;
}
int out(int a[])
{
for(i=a[0];i>0;i--)
cout<<a[i];//输出的函数
return 0;
}
int main()
{ memset(a,0,sizeof(a));
memset(b,0,sizeof(a));
memset(c,0,sizeof(a));
cin>>s1>>s2;//s1必须大于s2
change(s1,a);
change(s2,b);
jian(a,b,c);
out(c);
system("pause");
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询