數字中的1——leetcode233

c_木ss發表於2019-02-24

題目:給定一個整數n, 計算所有小於等於n的非負整數中數字1出現的個數

自己的實現方法:

使用兩個個for迴圈,第一個for實現對數字的查詢,將數字轉換為字串,
第二個for檢視1是否在字串中,最後統計1的個數。

程式碼如下:

def func(x):
    digit_1 = 0
    num = []
    for i in range(x+1):
        str1 = str(i)
        if '1' in str1:
            num.append(int(str1))
            for str2 in str1:
                if int(str2) == 1:
                    digit_1 += 1
    return num, digit_1
while 1:
    x = int(input('請輸入一個整數:'))
    num, digit_1 = func(x)
    print('1共出現的次數有:%d 次 '% digit_1)
    print('數字1出現在以下數字中:', num)

## 以下是列印結果:
請輸入一個整數:22
1共出現的次數有:13 次 
數字1出現在以下數字中: [1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21]
請輸入一個整數:31
1共出現的次數有:14 次 
數字1出現在以下數字中: [1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 31]

總結:第一次寫部落格,也是第一次寫演算法程式碼。演算法思想還不成熟,有問題多多指教。感謝!

相關文章