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