C++如何在十进制系统中添加两个数字?

标签 c++ arrays

我有两个数字 999 和 2。我想将它们添加到十进制系统中,例如:

999
 +2
---
1001

首先,我将 2 与 9 相加得到 11,因此我打印 1 并为接下来的 9 执行 1。同样得到 10,打印 0 并为接下来的 9 执行 1 并添加它们。这就像我们以前在学校级别做加法一样。但是,现在我必须在 C++ 中做同样的事情。为此,首先我将 999 拆分并存储在一个数组中。之后将 2 与数组的最后一个元素相加。如果总和大于或等于 10,我将为数组中的下一个元素保留 sum%10。问题是,我不知道如何将 sum%10 添加到下一个元素,并继续检查其余元素是否同时大于或等于 10?

最佳答案

假设ab 包含倒序的数字。此代码会将 b 添加到 a,即 a = a+b

int base = 10;
int carry = 0;
for (size_t i=0; i<max(a.size(),b.size()) || carry; ++i) {
    if (i == a.size())
        a.push_back (0);
    a[i] += carry + (i < b.size() ? b[i] : 0);
    carry = a[i] >= base;
    if (carry)  a[i] -= base;
}

关于C++如何在十进制系统中添加两个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43493037/

相关文章:

c++ - 增加C++中的时间分辨率

c++ - 使用结构作为映射中的键

java - 将自定义 ArrayList 中具有相同日期的元素分组

java - 如何将字符串数组和字符串作为可变参数传递?

php - 如何在 zend 框架 2 中返回一个对象数组?

c++ - 静态成员不允许使用不完整的类型

c++ - OOP 游戏菜单系统开发概念化

c++ - C++ 的 Visual Studio 代码指标插件

c - 编写处理任何类型数组的函数

java.util.Scanner 读取不同字符编码的文件