Python數字1出現的次數怎么獲?。縋ython如何獲取序列中數字1出現次數

python面試題之中有這么一個常見的題目,那就是給定一個整數n,然后獲取1-n之間數字1的出現次數 。這個題目主要考驗的就是開發者對于算法以及基礎運算符的使用程度,那么下文有這個問題的相關代碼以及解題思路,感興趣的話就往下看看吧 。

Python數字1出現的次數怎么獲取?Python如何獲取序列中數字1出現次數


一、解題思路
那么這個問題的主要關鍵點在于給定的n是幾位數,個位數那么就只會有一個數字1 。十位數如果是19就會有11個數字1,而每增加10就會多出來一個數字一 。那么百位數以及往上的也是相同道理,不過它們會在百位上出現100次,十位上出現18次,個位上又出現9次 。
那么根據這個就是可以得到對應的公式f(n) = 9 * f(n-1) + 10 ** (n-1),只需要去套用這個公式來編寫代碼就可以了 。
二.代碼實現
那么只需要去定義一個遞歸函數就可以了,該函數只接受數字n一個參數,不過該數字需要是整數 。在該函數內先判斷其是否小于等于0,如果為0就表示無效值直接將其返回 。如果為數字1也直接返回1,因為1有且只會出現一次 。
【Python數字1出現的次數怎么獲???Python如何獲取序列中數字1出現次數】而其他的值就是要在函數內去將這個公式給編寫出來,因為該函數會調用自身,所以會將每次結果保存起來參與下次函數的調用 。最后當n的值變為傳進來數值時,就將獲取到的每位數相加起來返回即可得到數字1出現次數,詳細代碼如下:
def get_1_digits(n):    if n <= 0:        return 0    if n == 1:        return 1    current = 9 * get_1_digits(n-1) + 10 ** (n-1)    return get_1_digits(n-1) + current以上就是關于“Python數字1出現的次數怎么獲?。縋ython如何獲取序列中數字1出現次數”的全部內容了,希望對你有所幫助 。
Python數字1出現的次數怎么獲???Python如何獲取序列中數字1出現次數


Python數字1出現的次數怎么獲取?Python如何獲取序列中數字1出現次數


Python數字1出現的次數怎么獲取?Python如何獲取序列中數字1出現次數


微信掃碼,學習更方便
Python數字1出現的次數怎么獲?。縋ython如何獲取序列中數字1出現次數


現在報名贈100例知識點合集
Python數字1出現的次數怎么獲取?Python如何獲取序列中數字1出現次數


    猜你喜歡