#include<string.h> #include<stdio.h> int sum[101][100];//存储计算结果 char a1[100],b1[100],c1[100]; void tran(char a[],int k)//把输入的字符串转化为整型数组 { int l=strlen(a); int i=0,j; for(j=l-1;j>=0;j--) { sum[k][i]=a[j]-'0'; i++; } } void add(int t,int k)//把第t个数与第k个数相加 { int i,j; for(i=0;i<100;i++) sum[k][i]+=sum[t][i];//每一位都相加 for(j=0;j<100;j++) if(sum[k][j]>9)//如果大于9产生进位 { sum[k][j+1]+=sum[k][j]/10; sum[k][j]%=10; } } void solve() { int i,j; for(i=3;i<=99;i++) { add(i-3,i); add(i-2,i); add(i-1,i); } } int main() { int i,j; while(scanf("%s%s%s",&a1,&b1,&c1)!=EOF) { memset(sum,0,sizeof(sum));//初始化 tran(a1,0);tran(b1,1);tran(c1,2);//字符串转化为整型数组 solve(); j=100; while(sum[99][j]==0)//从最高位开始找,找到第一个不为0的数字 j--; for(i=j;i>=0;i--) printf("%d",sum[99][i]); printf("\n"); } } |
Double click to view unformatted code.