C++如何在十进制系统中添加两个数字?
问题描述:
我有两个号码999和2。我想将它们添加在十进制系统中,例如:C++如何在十进制系统中添加两个数字?
999
+2
---
1001
首先,我加入了2 9和我得到11所以我打印1和然后执行1。同样得到10,打印0并执行下一个9并添加它们。这就像我们以前在学校级别做过的那样。但是,现在我必须在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;
}