打印从1到最大的n位数
题目描述
打印1到最大的n位数,如n=3时打印1到999
Solution
# -*- coding: utf-8 -*-
"""
Created on Thu Mar 22 14:59:49 2018
@author: Saul
"""
class Solution:
def Increment(self, number):
isOverflow = False
flag = 0
lenth = len(number)
n = lenth-1
while n >= 0:
nSum = int(number[n]) + flag
if n == lenth - 1:
nSum += 1
if nSum >= 10:
if n == 0:
isOverflow = True
else:
flag = 1
nSum = nSum % 10
number[n] = str(nSum)
else:
number[n] = str(nSum)
n -= 1
return isOverflow
def PrintNumber(self, number):
isBegin = False
lenth = len(number)
for i in range(lenth):
if number[i] != '0' and isBegin is False:
isBegin = True
if isBegin:
print('%c' %number[i])
print('')
def Print1ToMaxOfNDigits(self,n):
if n <= 0:
return
number = ['0'] * n
while self.Increment(number) is False:
self.PrintNumber(number)