17 列印從1到最大的n位數 python

2021-10-04 23:45:34 字數 984 閱讀 4637

題目:輸入數字n,按順序列印從1到最大的n位十進位制數。(大整數問題)

def print_max_n(n):

res = [0 for i in range(n)]

while not is_max(res):

res=list_plus_1(res)

print(res)

def is_max(arrys):

for arr in arrys:

if arr != 9:

return false

return true

# 返回加1後的列表

def list_plus_1(arr):

length = len(arr)

carry = 0

i=-1

while i>=-1*length:

if i==-1:

if arr[-1] + 1 < 10:

arr[-1] = arr[-1] + 1

else:

arr[-1] = arr[-1] + 1 - 10

carry = 1

else:

if arr[i]+carry<10:

arr[i] = arr[i]+carry

carry=0

else:

arr[i]=arr[i]+carry-10

carry=1

i-=1

return arr

注:list_plus_1:用列表模擬字串,該函式用來實現數值加1的操作,最後輸出字串時,只需要將列表拼接輸出即可

is_max:用於判斷該當前列表表示的數是否為要輸出的最大數9999...999,如果達到最大,返回true

print_max_n:先呼叫is_max判斷是否已達到最大數,如果沒達到,呼叫list_plus_1,實現加1操作。如果要完善輸出,可以在加乙個函式,用來輸出優化,將列表最前邊的若干0不輸出

17 列印從1到最大的n位數

輸入數字n,按順序列印出從1到最大的n位十進位制數。比如輸入3,則列印出1 2 3一直到最大的3位數999。示例 1 輸入 n 1 輸出 1,2,3,4,5,6,7,8,9 說明 題目要求列印 從1至最大的n位數的列表 因此需考慮以下兩個問題 最大的n位數 記為end 和位數n的關係 例如最大的1位...

演算法 17 列印從1到最大的n位數

1 要列印從1到最大的n位數,題目要求把列印的數放在乙個陣列裡面,首先要確定這個陣列的長度是多少 pow 方法可返回 x 的 y 次冪的值。我們用這個函式方法可以求得陣列的長度 len math.pow 10,n 12 將長度為len的陣列,從1按順序列印出來 array.from使用箭頭語法和對映...

劍指 17 列印從1到最大的n位數

題目描述輸入數字n,按順序列印出從1到最大的n位十進位制數。比如輸入3,則列印出1,2,3一直到最大的3位數999.思路分析 考查大數的表示與計算.將分為3個模組。增長數字。列印數字。面試題17.列印從1到最大的n位數 include include using namespace std bool...