【发布时间】:2016-07-14 21:03:27
【问题描述】:
我需要找到介于 1 和最大 N 位整数之间的整数,例如:当 n = 3 时。我需要返回 1...999。并使用递归。以下是我的代码。问题是我不知道代表数字的确切数据结构。准确返回 (n=2):[1,2,3,....99],但我返回 [[0,0],[0,1],。 .[9,9]].我用列表来表示数字。有谁知道代表数字的确切形式吗?
class Solution:
# @param n: An integer.
# return : A list of integer storing 1 to the largest number with n digits.
def setOnebyOne(self,numList,number,n,index):
if index == n-1:
print 'index = n-1',n-1,number
numList.append(number)
return numList
print index,'setting',number
for i in range(10):
if i == 0:
number.append(i)
else:
number[index+1] = i
print number
self.setOnebyOne(numList, number,n,index+1)
def numbersByRecursion(self, n):
# write your code here
if n <1:
return None
numList = []
for i in range(10):
print i
number =[]
print number
number.append(i)
print 'number[0]= ',number
self.setOnebyOne(numList, number,n,0)
【问题讨论】:
-
这听起来很像家庭作业。除了你的例子 n=3 不应该是 1...999 而是 1...7 (如果它是无符号的)。也许是一个提示:不要在递归函数中使用 for 循环。
-
哦,我好像没有解释清楚。它是用十进制而不是二进制来讨论的。所以如果 n=3 则为 1...999
标签: python recursion permutation