我想使用数组计算两个数字之间的差异(比如说v
and n
,so v-n
)(不要问我为什么要这样做)。每个数字的数组按以下方式制作:
v
它们的容量是和之间的最大数字的位数n
(=q
在代码中)vArray[i]
=除前导零外i
的第一个数字v
以填充整个数组nArray[i]
= -除前导零外i
的第一个数字n
以填充整个数组
例如,然后选择v
= 10 和n
= 2,
vArray = [1,0]
nArray = [0,-2]
所以我写了这段代码来计算sum
将等于差的数字的数组(sum = [0,9]
对于上面的例子):
long r = 0;
for (int i = q-1 ; i > -1; i--){
sum[i] = vArray[i] + nArray[i];
if (sum[i] < 0){
r = floor(sum[i]/10);
sum[i-1] -= r;
sum[i] = sum[i]+10;
}else{
r = 0;
}
NSLog(@"%li",sum[i]);
}
问题是 sum 数组不等于它应该是什么。对于同一个例子,sum = [1,8]
代码中的问题是什么?
注意:vArray
并且nArray
正确生成。
编辑:一些例子和预期的结果
v = | n = | vArray = | nArray= | sum=
25 | 9 | [2,5] | [0,9] | [1,6]
105 | 10 | [1,0,5] | [0,1,0] | [0,9,5]
1956 | 132 | [1,9,5,6] | [0,1,3,2] | [1,8,2,4]
369375 | 6593 |[3,6,9,3,7,5]| [0,0,6,5,9,3] |[3,6,2,7,8,2]