我需要编写一个方法,将两个数组的最后两个元素加在一起,并在另一个数组上添加和。但如果两个元素都超过10,那么我需要将该数字带到下一个数组。
这个程序应该与里程表相似。
这是我的示例代码。
int [] sum(int []number1, int []number2)
{
int [] total;
int carry = 0;
for ( int k = numbers1 - 1; k >= 0; k++)
{
sum = number1[k] + number2[k] + carry;
carry = sum/10;
total[k] = sum
}
return total;
}
示例输出为:
0 1 2 3 4
0 8 9 9 9
4 5 7 0 3
5 4 7 0 2
因此,顶部数组只是一个视觉辅助工具,可以告诉数字的位置。 该程序假设将下两个数组一起添加。即9 + 3 = 12 由于12高于9,它将10传递给下一组数组,这就是为什么第三个数组只有一个2,这就是为什么下一个数组是9 + 0 = 0;因为10被带走了。
我不确定为什么我的代码不起作用。我没有得到正确的数字。任何人都可以提供任何提示或解决方案吗?
-Thanks
答案 0 :(得分:1)
我假设callable::deallocate
是数组中元素的数量。
在这种情况下,它应该是numbers1
而不是k--
,因为您从最后一个元素开始并移动后缀。