杭電1047
阿新 • • 發佈:2019-01-29
題目描述:
不描述了,和那些大數相加一樣吧,注意格式
AC程式碼:
#include<stdio.h> #include<string.h> #define N 105 void add(char a[],char b[],char c[]){ int i,e,d; int n,m; char temp; n=strlen(a); m=strlen(b); for(i=0; i<n/2; i++){ temp=a[i]; a[i]=a[n-1-i]; a[n-1-i]=temp; } for(i=0; i<m/2; i++){ temp=b[i]; b[i]=b[m-1-i]; b[m-1-i]=temp; } e=0; for(i=0; i<n&&i<m; i++){ d=a[i]-'0'+b[i]-'0'+e; e=d/10; c[i]=d%10+'0'; } if(i<m){ for(; i<m; i++){ d=b[i]-'0'+e; e=d/10; c[i]=d%10+'0'; } } else{ for(; i<n; i++){ d=a[i]-'0'+e; e=d/10; c[i]=d%10+'0'; } } if(e) c[i++]=e+'0'; c[i]=0; n=i; for(i=0; i<n/2; i++){ temp=c[i]; c[i]=c[n-1-i]; c[n-1-i]=temp; } } int main(){ char a[N],b[N],sum[N]; int n; scanf("%d",&n); getchar(); while(n--){ strcpy(sum,"0"); while(1){ scanf("%s",a); if(!strcmp(a,"0")) break; add(a,sum,sum); } printf("%s\n",sum); if(n) printf("\n"); } return 0; }