如何用伪代码逐位加2个数字?
注意:您不知道数字的长度 - 如果它有数十,数百,数千...... 单位应该添加到单位,数十到数十,数百到数百...... 如果在添加单位时存在值> = 10,则需要将该值的值设为“十位”....
我试过
开始
待办事项
在A到Sum(x)
中添加数字(x)将B中的数字(x)添加到Sum(x)
如果Sum(x)> 9,然后(?????)
digit(x)= digit(x + 1)
而A中的数字(x)和B中的数字(x)是> 0
我迷失了......
请帮忙!
答案 0 :(得分:0)
A
和B
是您想要求和的整数。
注意,当所有三个整数都等于零时,while循环结束。
carry = 0
sum = 0
d = 1
while (A > 0 or B > 0 or carry > 0)
tmp = carry + A mod 10 + B mod 10
sum = sum + (tmp mod 10) * d
carry = tmp / 10
d = d * 10
A = A / 10
B = B / 10
答案 1 :(得分:0)
试试这个,
n = minDigit(a, b) where a and b are the numbers.
let sum be a number.
m = maxDigit(a,b)
allocate maxDigit(a,b) + 1 memory for sum
carry = 0;
for (i = 1 to n)
temp = a[i] + b[i] + carry
// reset carry
carry = 0
if (temp > 10)
carry = 1
temp = temp - 10;
sum[i] = temp
// one last step to get the leftover carry
if (digits(a) == digits(b)
sum[n + 1] = carry
return
if (digits(a) > digits(b)
toCopy = a
else
toCopy = b
for (i = n to m)
temp = toCopy[i] + carry
// reset carry
carry = 0
if (temp > 10)
carry = 1
temp = temp - 10;
sum[i] = temp
如果有帮助请告诉我