View Code of Problem 3497

#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.


Back to problem 3497