演算法備戰之計蒜客A+B問題
阿新 • • 發佈:2019-01-14
#include<iostream> #include<cstring> using namespace std; int max(int m,int n) { int max=m; if(n>max) max=n; else max=m; return max; } int main() { char x1[500]={'\0'}; char x2[500]={'\0'}; int i; int carry[501]={0}; int result[501]={0}; cin>>x1>>x2; int len1=strlen(x1); int len2=strlen(x2); strrev(x1); strrev(x2); int lenmax=max(len1,len2); int x11[500]={0}; for(i=0;i<=len1-1;i++) { x11[i]=x1[i]-'0'; } int x22[500]={0}; for(i=0;i<=len2-1;i++) { x22[i]=x2[i]-'0'; } for(i=0;i<=lenmax-1;i++) { result[i]=x11[i]+x22[i]; result[i+1]=0; } for(i=0;i<=lenmax+1;i++) { carry[i+1]=result[i]/10; result[i]=result[i]%10+carry[i]; } if(result[lenmax]==0) i=lenmax-1; else i=lenmax; for(;i>=0;i--) { cout<<result[i]; } cout<<endl; return 0; }