Ich muss die ganzen Zahlen zwischen 1 und der größten N-Bit-Integer, zB zu finden: wenn n = 3. Ich muss 1 ... 999 zurückgeben. Und mit Rekursion. Das folgende ist mein Code. Das Problem ist, dass ich die genaue Datenstruktur nicht kenne, um die Zahl darzustellen. Präzise zurückzugeben (n = 2): [1,2,3, .... 99], aber ich gebe zurück [[0,0], [0,1], .. [9,9]]. Ich benutze Liste, um die Nummer darzustellen. Kennt jemand das genaue Forn, um die Zahlen darzustellen?Finden Sie ganze Zahlen zwischen 1 und die größten N-Bits mit Rekursion in 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)
Das klingt sehr nach einer Hausaufgabe. Außerdem sollte Ihr Beispiel mit n = 3 nicht 1 ... 999, sondern 1 ... 7 sein (wenn es nicht signiert ist). Vielleicht ein Hinweis: Verwenden Sie KEINE for-Schleifen in rekursiven Funktionen. – hr0m
Oh, ich schien es nicht klar zu erklären. Es wird im Dezimalformat nicht im Binärformat gesprochen. So ist es 1 ... 999, wenn n = 3 – liuxy