[英]Find integers between 1 and the biggest N-bits using recursion in python
我需要找到介於 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)
這是一種方法。
class Solution():
def __init__(self,inp):
self.inp = inp
self.val = pow(10,inp) - 1
self.ans = []
def solution(self):
if self.val>0:
self.ans.append(self.val)
self.val-=1
self.solution()
inp = input()
sol = Solution(inp)
sol.solution()
print sol.ans
你也可能想看這個。 Python中的遞歸? 運行時錯誤:調用 Python 對象時超出了最大遞歸深度
通過執行檢查它
import sys
print sys.getrecursionlimit()
已編輯
def numbersByRecursion(n,largest,result):`
def recursion(num,largest,result):
if num <= largest:
result.append(num)
return recursion(num+1,largest,result)
else:
return result
return recursion(n,largest,result)
result = []
n = input()
largest = pow(10,n) - 1
ans = numbersByRecursion(1,largest,result)
print ans
如果您的問題是如何擊敗像
list = [[0,0], [0,1], [0,2], ... , [9,9]]
進入
result_list = [0, 1, 2, 3, ..., 99]
那么你可以這樣做:
def format_list(list):
result_list = []
for item in list:
result = 0
power = len(item)*10
for digit in item:
result += digit ** power
power /= 10
result_list.append(result)
return result_list
免責聲明:沒有測試這個
嘗試這個
def myfn(n):
def myfn2(i):
if i==int(n*'9'):
return [int(n*'9')]
return [i]+myfn2(i+1)
return myfn2(1)
這給
>>>myfn(2)
[1,2,.....,98,99]
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.