題目:輸入數字n,按順序打印出從1到最大的n位十進制數,比如輸入3,則打印出1、2、3一直到最大的3位數999.
class Solution:
def Print1ToMaxOfNDigits(self, n):
if n<=0:
return
number = ['0']*n # n位列表
for i in range(10):
number[0] = str(i)
self.Print1ToMaxOfNDigitsRecursively(number, n, 0)
# 打印結果
def PrintNumber(self, number):
isBeginning0=True
nLength = len(number)
for i in range(nLength):
if isBeginning0 and number[i]!='0':
isBeginning0 = False
if not isBeginning0:
print(number[i], end="")
print('\t')
# 遞歸
def Print1ToMaxOfNDigitsRecursively(self, number, length, index):
if index==length-1:
self.PrintNumber(number)
return
for i in range(10):
number[index+1] = str(i)
self.Print1ToMaxOfNDigitsRecursively(number, length, index+1)
if __name__=="__main__":
solution = Solution()
solution.Print1ToMaxOfNDigits(3)