假设你把整数分成100->[1,0,0]这样的数组
如何编写递增长整数的递归函数。例如incr([9,9])>[1,0,0]?
我知道如何非递归地做。
最佳答案
这是@Mbo算法在Python中的一个示例实现:
def addOne(a, ind, carry):
if ind<0:
if carry > 0:
a.insert(0, carry)
else:
n = a[ind] + carry
a[ind] = n%10
carry = n/10
addOne(a, ind-1, carry)
n = int(raw_input("Enter a number: "))
a = []
if n == 0:
a.append(0)
while n>0:
a.append(n%10)
n = n/10
a = list(reversed(a))
print "Array", a
# performing addition operation
addOne(a,len(a)-1,1)
print "New Array", a
注意:我最初将
1
作为carry
发送,因为我们想在数字上加1。样本输入/输出
Enter a number: 99
Array [9, 9]
New Array [1, 0, 0]