面試題17:打印從1到最大的n位數

題目:輸入數字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)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章