演算法題 從1到n的正數中1的出現次數

2021-08-07 04:00:46 字數 554 閱讀 9858

輸入乙個整數n,求從1到n這n個正數中,1出現的次數。例如:輸入12,出現一的數字有1,10,11,12共有5個1,則輸出5.

最簡單的方法,我們可以遍歷從1到n的每乙個數字k,對於k我們計算出它其中包含的1的個數,方法其實很簡單,只需要分別判斷個位,十位,百位,千位等的每一位是否為1,然後用計數器記錄。

對10求餘判斷是否等於一這樣為了判斷最高位是否為1

n/10是為了每次得到除了最高位的後面數字。

#coding:utf-8

defcompute

(n):

total_1 = 0

for i in range(1,n+1):

#計算數字n每一位的1,

while i:

if i % 10 ==1:

total_1 += 1

i = i/10

return total_1

if __name__ == '__main__':

print('12 has %i 1'%compute(12))

計算從1到N中1的出現次數

給定乙個十進位制整數n,求出從1到n的所有整數中出現 1 的個數。例如 n 2,1,2出現了1個 1 n 12,1,2,3,4,5,6,7,8,9,10,11,12。出現了5個 1 最直接的方法就是從1開始遍歷到n,將其中每乙個數中含有 1 的個數加起來,就得到了問題的解。01publiclongc...

在從1到n的正數中1出現的次數

題目 輸入乙個整數n,求從1到n這n個整數的十進位制表示中1出現的次數。例如輸入12,從1到12這些整數中包含1 的數字有1,10,11和12,1一共出現了5次。我的思路是計算每一位上1會出現在哪些數字中。建乙個陣列a n 放置每一位,從個位到最高位,0 n,這裡n 4。a 0 5,a 1 0,a ...

在從1到n的正數中1出現的次數

int count1in1ton int n return n int countnumber1 int n return count 程式設計之美上的方法 大體的思路是這樣的 假設n abcde,這裡a,b,c,d,e分別是十進位制數n的各個位數上的數字。如 果要計算百位上出現1的次數,它會受到三...