1280.就问你慌不慌 SDNUOJ 1280

Description
求N进制的高精度加法
Input
第一行输入N(2≤N≤10)

第二行两个数X Y(长度均≤100)

Output
输出N进制下X和Y的和
Sample Input
5
2 4
Sample Output
11

高精度加法

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;

int main()
{
    int n;
    while(cin >> n)
    {
        char a[105] = {}, b[105] = {}, c[105] = {};
        cin >> a >> b;
        int lena = strlen(a);
        int lenb = strlen(b);
        ///确保 a 是较大(较长)的数字
        if(lena < lenb)
        {
            for(int i = 0; i < lenb; i++)
            {
                swap(a[i], b[i]);
            }
            swap(lena, lenb);
        }
        reverse(a, a + lena);
        reverse(b, b + lenb);
//    cout << a << '\n' << b << '\n';
        ///逢十所进
        int j = 0;
        int i;
        for(i = 0; i < lenb; i++)
        {
            c[i] = (a[i] + b [i] - '0' - '0' + j) % n + '0';
            j = (a[i] + b[i] - '0' - '0' + j) / n;
        }
        for(int k = i; k < lena; k++)
        {
            ///照顾衔接处及末(反转后)
            c[k] = (a[k] + j - '0' ) % n + '0';
            j = (a[k] + j - '0' ) / n;
        }
        if(j != 0)
            cout << j;
        for(int m = lena - 1; m >= 0; m--)
            cout << c[m];
        cout << '\n';
    }
    return 0;
}

全部评论

相关推荐

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