我有两个数字 999 和 2。我想将它们添加到十进制系统中,例如:
999
+2
---
1001
首先,我将 2 与 9 相加得到 11,因此我打印 1 并为接下来的 9 执行 1。同样得到 10,打印 0 并为接下来的 9 执行 1 并添加它们。这就像我们以前在学校级别做加法一样。但是,现在我必须在 C++ 中做同样的事情。为此,首先我将 999 拆分并存储在一个数组中。之后将 2 与数组的最后一个元素相加。如果总和大于或等于 10,我将为数组中的下一个元素保留 sum%10
。问题是,我不知道如何将 sum%10
添加到下一个元素,并继续检查其余元素是否同时大于或等于 10?
最佳答案
假设a
和b
包含倒序的数字。此代码会将 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/