作者共发了1篇帖子。 内容转换:不转换▼
 
点击 回复
228 0
【程序】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

回复帖子

内容:
用户名: 您目前是匿名发表
验证码:
(快捷键:Ctrl+Enter)
 

本帖信息

点击数:228 回复数:0
评论数: ?
作者:巨大八爪鱼
最后回复:巨大八爪鱼
最后回复时间:2016-3-3 23:29
 
©2010-2024 Arslanbar Ver2.0
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。