統計從1到N的所有整數中出現1的個數

2021-07-10 21:36:11 字數 479 閱讀 9336

問題:

給定乙個十進位制的正整數n,寫下從1開始到n的所有整數,然後數一下其中出現的所有「1」的個數。

解:

假設n=abcde,這裡abcde分別是十進位制數n的各個數字上的數字。例如我們計算百位上出現1的次數,它將會受到三個因素的影響:百位上的數字,百位一下,百位以上的數字。對於2位數來說,個位數出現1的次數不僅和個位數字有關,還和十位數有關:如果n的個位數大於等於1,則個位出現1的次數為十位數的數字加1;如果n的個位數為0,則個位出現1的次數等於十位的數字。十位數類似。

**:

#include using namespace std;

void countonenum(int n)

cout << icount << endl;

}}int main()

計算正整數1到N中出現的1的個數

題目 1到n中,出現的1的個數 假設1到某個數12x01,設百位上的數字出現1的次數,假設百位上的數字x 0,百位上出現1的情況由100 199,1100 1199,2100 2199 3100 3199,11100 11199,總共1200個,當前位的高位為12,有12 100。假設x 1,百位上...

從1到n整數中1出現的次數

題目 輸入乙個整數n,求從1到n這n個整數的十進位制表示中1出現的次數。例如輸入12,從1到12這些整數中包含1的數字有1,10,1,11和12,1一共出現了5次。解決思路 設n abcde 其中abcde分別為十進位制中各位上的數字。如果要計算百位上1出現的次數,它要受到3方面的影響 百位上的數字...

從1到n整數中1出現的次數

輸入乙個整數n,求從1到n這n個數的十進位制表示中1出現的次數。例如 輸入12,從1到12這些整數中包含1的數字有1,10,11 這裡出現了2次 和12,一共出現了5次。有2種解法 第一種 窮舉法,從1到n,每個數判斷一次,判斷的方法是每位除以10,若餘數為1,這說明改位含1。複雜度為o n log...