Integer Inquiry 大数相加
??
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=6&page=show_problem&problem=365 #include<iostream> #include<cstring> using namespace std; void sum(char a[],char b[]) { ?char c[210]; ?int i; ?memset(c,sizeof(c)); ?for(i=200;i>=90;i--) ?{ ??if(a[i]>='0' && b[i]>='0') ???c[i]+=a[i]+b[i]-'0'; ??if(a[i]>='0' && b[i]<'0' || a[i]<'0' && b[i]>='0') ???c[i]+=a[i]+b[i]; ??if(a[i]<'0' && b[i]<'0') ??{ ???if(c[i]==1) ????c[i]='1'; ??} ??if(c[i]>'9') ??{ ???c[i]-=10; ???c[i-1]=1; ??} ?} ?for(i=200;i>=90;i--) ??b[i]=c[i]; } int main() { ?char a[210],temp[210],b[210]; ?int i,j; ?memset(b,sizeof(b)); ?while(1) ?{ ??memset(temp,sizeof(temp)); ??memset(a,sizeof(a)); ??cin>>temp; ??if(temp[0]=='0') ???break; ??int k=strlen(temp)-1; ??for(i=k,j=200;i>=0;i--,j--) ???a[j]=temp[i]; ??sum(a,b); ?} ?for(i=90;i<=200;i++) ??if(b[i]!=0) ???cout<<b[i]; ?cout<<endl; ?return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |