首页 > 其他 > 详细

打印从1到最大的n

时间:2018-05-08 12:47:47      阅读:190      评论:0      收藏:0      [点我收藏+]

题目:输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数999

需考虑大数问题

#-*-coding:utf-8-*-

class print_N:
    def __init__(self,n):
         assert n >= 1, Input error:n must >= 1
         self.data = [0] * n
         self.print_number()
         
    def print_number(self):
       
        while self.Increment():
            i = 0
            while self.data[i] == 0:
                i += 1
            print ‘‘.join(self.data[i:])
    
    def Increment(self):
        
        length = len(self.data)
        index = length - 1
        digit = int(self.data[index])
        digit += 1
        if digit == 10:  # 满10进1
            flag = True
            while flag and index > 0:
                self.data[index] = 0
                index -= 1
                tmp = int(self.data[index]) + 1
                if tmp < 10:
                    flag = False
                    self.data[index] = str(tmp)
            if flag and index == 0:  # 当到达第一个位置时,如果符合满十进一的条件,则结束循环
                return False
        else:
            self.data[index] = str(digit)
        
        return True
if __name__ == __main__:
    p = print_N(0)
    p = print_N(2)
    p = print_N(5) 
    
     
    
        
 
        
        

 

打印从1到最大的n

原文:https://www.cnblogs.com/guozw/p/9007366.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!