2个数字的位置和

时间:2014-03-18 23:57:09

标签: algorithm pseudocode

如何用伪代码逐位加2个数字?

注意:您不知道数字的长度 - 如果它有数十,数百,数千......       单位应该添加到单位,数十到数十,数百到数百......       如果在添加单位时存在值> = 10,则需要将该值的值设为“十位”....

我试过

开始

待办事项

在A到Sum(x)

中添加数字(x)

将B中的数字(x)添加到Sum(x)

如果Sum(x)> 9,然后(?????)

digit(x)= digit(x + 1)

而A中的数字(x)和B中的数字(x)是> 0

  • 如何显示结果?

我迷失了......

请帮忙!

2 个答案:

答案 0 :(得分:0)

AB是您想要求和的整数。

注意,当所有三个整数都等于零时,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

 

如果有帮助请告诉我