设置 | 登录 | 注册

作者共发了1篇帖子。

【程序】C++中的大数进位加法

1楼 巨大八爪鱼 2016-3-3 23:29
注意num1, num2, newnum中的数位都是倒着写的。比如1234要写成4321,方便对其数位。
【代码】
#include <iostream>

using namespace std;

int main(void)
{
    char *num1 = "982799999";
    char *num2 = "4563";
    char newnum[20];
    char *pnum = newnum;
    bool carry = false;
    memset(newnum, '0', sizeof(newnum));
    memcpy(newnum, num1, strlen(num1));
    while (*num2 != '\0')
    {
        if (carry)
        {
            (*pnum)++;
            carry = false;
        }
        *pnum += *num2 - '0';
        if (*pnum > '9')
        {
            *pnum -= 10;
            carry = true;
        }
        num2++;
        pnum++;
    }
    while (carry)
    {
        (*pnum)++;
        if (*pnum > '9')
            *pnum -= 10;
        else
            carry = false;
        pnum++;
    }
    *pnum = '\0';
    cout << newnum << endl;
    system("pause");
    return 0;
}
【运行结果】
3490000001

内容转换:

回复帖子
内容:
用户名: 您目前是匿名发表。
验证码:
看不清?换一张
©2010-2025 Purasbar Ver3.0 [手机版] [桌面版]
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。