《程式設計之美》統計1的個數

2022-01-10 09:54:49 字數 589 閱讀 3481

今天看了《入門經典》上的一道題,打算來存個統計位數的模板,一般都是用數字dp來做,但統計單個數字可以特殊處理。

題目:對1~n統計1的個數。

題目簡單,分析可以看: 

舉個例子:

對於乙個數abcde,取百位上的c來計算,

假若c是"1",那麼百位上1的個數是由他的高位和低位來決定的。等於ab*100+cde+1;

假若c是"0",那麼百位上1的個數是ab*100;

假如c是大於1,那麼 百位上1的個數是(ab+1)*100

然後就上**了:

1 #include2

#define ll long long 34

ll n,count;56

ll sum_1(ll n)

727 factor*=10;//

位數公升高 28}

29return

count;30}

3132

intmain()

3338

return0;

39 }

view code

不懂得盡情問啊~~

-end-

計算1的個數 程式設計之美

給定乙個十進位制正數n,寫下從1開始到nde所有正整數,然後數一數其中出現所有 1 的個數。n 2 只有乙個1 n 12 只有五個1,1 10,11,12。分析 一,從1開始遍歷到n,將中每乙個書中含有1的個數加起來。方法如下 static int countoneinint int n retur...

程式設計之美2 4 求1的個數

推薦 從1到n的所有數中,1出現的次數 例如 f 2 1,因為就有乙個1,f 13 6,有1,10,11,12,13,1一共出現6次 include include using namespace std void fun int n ifactor 10 cout 2 擴充套件問題 同之前問題1的...

程式設計之美系列之三 計算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 的個數加起來,就得到了問題的解。如下 1...