大数加法

来源:互联网 发布:知乎 1024地址 编辑:程序博客网 时间:2024/05/22 15:36
#include <iostream>#include <cstdio>#include <cstring>#define N 10000using namespace std;int max(int a,int b){return a > b?a:b;}int main(){char a[N],  b[N];char a1[N], b1[N];int  c[N];int k1,k2;while(scanf("%s%s",&a,&b) !=EOF ) {int i;memset(a1,0,sizeof(a1));memset(b1,0,sizeof(b1));k1 = strlen(a) - 1;for(i = 0; i <= k1; i++) {a1[i] = a[k1 - i];}k2 = strlen(b) - 1;for(i = 0; i <= k2; i++) {b1[i] = b[k2 - i];}int k,g,len = 0;for(i = 0; g || i <= max(k1,k2);i++) {k = g;<span style="white-space:pre"></span>\\加上进位if(i <= k1) k += a1[i] - '0';if(i <= k2) k += b1[i] - '0';c[len++] = k % 10;<span style="white-space:pre"></span>\\保存当前位结果g = k / 10;<span style="white-space:pre"></span>\\计算进位}for(i = len - 1; i >= 0; i--) {printf("%d",c[i]);}printf("\n");}return 0;}

0 0
原创粉丝点击