一個正整數如果從高位數往低位數看過去,每一位數字只會相等或變大,則我們稱它 為階梯數字,例如:9、234、777、11222233。給定一正整數 N,請計算不大於 N 的階梯數字總共有幾個,請注意本題只算正整數,所以 0 不算階梯數字,而且階梯數 字不會以 0 開始
提示:對於 N 不大的情形,例如 100000,我們可以枚舉每一個不超過 N 的數字來判 斷。對於 N 很大的時候,就需要比較快速的方法了。我們知道所有的一位數 1~9 都是階梯數字,如果要計算 D 位數的階梯數字總數,我們可以依據最高位數字分成 9 類,然後根據(D - 1)位的 9 類階梯數字總數來計算。
輸入一個正數字 N。N ≤ 1e18。
不大於 N 的階梯數字個數。
25
22
101
54
範例一說明:1~9, 11~19, 22~25,共 22 個。
範例二說明:1~9, 11~19, 22~29, 33~39, 44~49, 55~59, 66~69, 77~79, 88~89, 99,一共有 54 個。
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |