v
配列を使用して 2 つの数値 (たとえばと などn
)の差を計算したいv-n
(なぜそうしなければならないのかは聞かないでください)。各数値の配列は、次の方法で作成されます。
v
それらの容量は、 ~ の間の最大数の桁数ですn
(=q
コード内)。vArray[i]
=配列全体を埋めるための先頭の 0 を除いた 4i
番目の桁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 = [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]