题解 | #高精度整数加法#
高精度整数加法
http://www.nowcoder.com/practice/49e772ab08994a96980f9618892e55b6
程序写复杂了,但也是过了,嘿嘿有简单可以给解说一下
#include<stdio.h> #include<string.h> int main() { char n[10000]={0},m[10000]={0}; while(gets(n)&&gets(m)) { int i,j,len1,len2; int k1[10000]={0}; int k2[10000]={0}; int k3[10000]={0}; len1=strlen(n); len2=strlen(m); for(i=0;i<len1;i++) { k1[i]=n[len1-i-1]-'0'; } for(j=0;j<len2;j++) { k2[j]=m[len2-j-1]-'0'; } int flag=0; int p=0; if(len1>=len2) { p=len1; } else{ p=len2; } for(i=0;i<p;i++) { flag=k1[i]+k2[i]+flag; k3[i]=flag%10; flag=flag/10; } if(flag==1) printf("%d",flag); for(int i=p-1;i>=0;i--) { if(i>0) printf("%d",k3[i]); else printf("%d\n",k3[i]); } } return 0; }