高精度加法第三次学习...内容自己理解吧
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 using namespace std; 5 #define MAXLEN 110 6 int main(){ 7 char a1[MAXLEN],b1[MAXLEN];//输入的原始加数字符串 8 int a[MAXLEN],b[MAXLEN],c[MAXLEN],lena,lenb,lenc,x;//分别存储两个加数,结果,加数的结果的长度和进位 9 memset(a,0,sizeof(a)); 10 memset(b,0,sizeof(b)); 11 memset(c,0,sizeof(c));//初始化 12 scanf("%s%s",a1,b1); 13 lena = strlen(a1); 14 lenb = strlen(b1);//计算两个字符串的长度 15 for(int i=0;i <= lena - 1;i++) 16 a[lena -i]=a1[i] -‘0‘;//加数放入a数组 17 for(int i = 0;i <= lenb - 1;i++) 18 b[lenb - i]=b1[i] - ‘0‘;//加数放入b数组 19 lenc = 1; 20 x = 0; 21 while(lenc <= lena || lenc<= lenb){ 22 c[lenc] = a[lenc] + b[lenc] +x;//两数相加 23 x = c[lenc] / 10; //计算进位 24 c[lenc] %= 10; //本位保留的数 25 lenc++; 26 } 27 c[lenc] = x; 28 if(c[lenc] == 0) 29 lenc--;//处理最高进位 30 for(int i = lenc; i>=1; i--) 31 cout << c[i];//输出结果 32 cout<<endl; 33 return 0; 34 }
原文地址:https://www.cnblogs.com/wwcjj/p/8280624.html
时间: 2024-10-13 11:51:26