Integer Inquiry(大数加法)

Integer Inquiry

http://www.nowcoder.com/questionTerminal/df03906024d742cc919a64c22983f5e1

简单的大数加法,按照竖式的计算方式从最低位往最高位加,记住进位即可。

#include<stdio.h>
#include<string.h>
int main()
{
    char str1[101]; // 始终将str1作为中间结果
    char str2[101];
    int ans[101]={0}; // 中间结果的int表示
    scanf("%s",str1);
    while(scanf("%s",str2) != EOF)
    {
        if(!strcmp(str2,"0"))
            break;
        else
        {
            int num1[101]={0};
            int num2[101]={0};
            int n1 = strlen(str1);
            int n2 = strlen(str2);
            //将str1和str2按倒序(即从低位到高位)存入num1和num2
            for(int i = 0;i<n1;i++)
                num1[i] = str1[n1-1-i] - '0';
            for(int i = 0;i<n2;i++)
                num2[i] = str2[n2-1-i] - '0';
            int n = n1>n2?n1:n2;
            int jinwei = 0;
            for(int i = 0;i<n;i++)
            {
                ans[i] = (num1[i] +num2[i] + jinwei) %10;
                jinwei = (num1[i] +num2[i] + jinwei) /10;
            }
            if(jinwei) // 最高位若也有进位
            {
                ans[n] = jinwei;
                n++;
            }
            for(int i = 0;i<n;i++)
                str1[i] = ans[n-1-i]+'0';
        }
    }
    puts(str1);
    return 0;
}
全部评论

相关推荐

Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务