1と最大Nビットの整数の間の整数を見つける必要があります。たとえば、n = 3の場合1 ... 999を返す必要があります。再帰を使用する。次は私のコードです。問題は、数値を表す正確なデータ構造がわからないことです。正確に戻る(n = 2):[1,2,3、.... 99]ですが、私は[[0,0]、[0,1]、.. [9,9]]を返します。リストを使用して番号を表します。誰もが数字を表す正確なfornを知っていますか?1と最大のNビットの間の整数を、Pythonの再帰を使って求めます。
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(符号なしの場合)です。 ヒント:再帰関数のループには使用しないでください。 – hr0m
ああ、私はそれをはっきり説明していないようでした。それはバイナリではなく10進数で話されます。それで1 ... 999ならn = 3 – liuxy