算法提高 大数加法
发布时间:2020-12-31 07:24:35 所属栏目:大数据 来源:网络整理
导读:问题描述 输入两个正整数a,b,输出a+b的值。 输入格式 两行,第一行a,第二行b。a和b的长度均小于1000位。 输出格式 一行,a+b的值。 样例输入 4 2 样例输出 6 #includestdio.h#includestring.hvoid fun(int n,int sum[]){int temp,i;for(i=0;in;i++){temp=s
问题描述
输入两个正整数a,b,输出a+b的值。
输入格式
两行,第一行a,第二行b。a和b的长度均小于1000位。
输出格式
一行,a+b的值。
样例输入
4 #include<stdio.h> #include<string.h> void fun(int n,int sum[]) { int temp,i; for(i=0;i<n;i++) { temp=sum[i]; sum[i]=temp%10; sum[i+1]+=temp/10; } if(sum[i]!=0) { n++; } for(i=n-1;i>=0;i--) { printf("%d",sum[i]); } printf("n"); } int main() { int len1,len2,a,b,k=0; char num1[1050],num2[1050]; int sum[1100]; memset(sum,sizeof(sum)); //必须要初始化为0 scanf("%s%s",num1,num2); len1=strlen(num1); len2=strlen(num2); a=len1-1; b=len2-1; while(a>=0 || b>=0) { if(a<0) { sum[k]=num2[b]-'0'; k++; b--; } else if(b<0) { sum[k]=num1[a]-'0'; k++; a--; } else { sum[k]=num1[a]-'0'+num2[b]-'0'; k++; b--; a--; } // printf("%d ",sum[k-1]); } // printf("n"); if(len1>len2) { fun(len1,sum); } else if(len1<len2) { fun(len2,sum); } else { fun(len1,sum); } return 0; } (编辑:淮安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |