码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 1002

时间:2014-12-05 17:34:17      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:acm算法   amp   c   math.h   printf   

大数相加,我的做法是开两个字符数组,和整型数组,将字符数组存到整型数组里面去,让两个整型数组相加,如果大于等于10,前一位进一(因为存的时候顺序已经反了)。。

然后从后面开始判断非0,如果遇到不是零的直接跳出,输出数组。直接上代码吧。

#include <stdio.h>
#include <string.h>
int main()
{
    int a[1005];
    int b[1005];
    char a1[1005];
    char a2[1005];
    int n,m,i,j,l1,l2,cc;
    scanf("%d",&n);
    m=n;
    int wbx=1;
    while(m--)
    {
        memset(a,0,sizeof(a));
        memset(b,0,sizeof(b));
        scanf("%s%s",a1,a2);
        l1=strlen(a1);
        l2=strlen(a2);
        cc=0;
        for(i=l1-1;i>=0;i--)
            a[cc++]=a1[i]-'0';
        cc=0;
        for(i=l2-1;i>=0;i--)
            b[cc++]=a2[i]-'0';
        for(i=0;i<1005;i++)
        {
            a[i]+=b[i];
            if(a[i]>=10)
            {
                a[i]-=10;
                a[i+1]++;
            }
        }
        printf("Case %d:\n",wbx++);
        printf("%s + %s = ",a1,a2);
        for(i=1004;i>=0;i--)
            if(a[i])
                break;
            for(j=i;j>=0;j--)
                printf("%d",a[j]);
            printf("\n");
            if(wbx!=n+1)
                printf("\n");
    }
    return 0;
}


 

HDU 1002

标签:acm算法   amp   c   math.h   printf   

原文地址:http://blog.csdn.net/sky_miange/article/details/41748337

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!