這個題有很多的姿勢,準備pat考試的時候再次遇到這個題目,數字相關的題目都是劃分區間,然後進行統計
因為需要統計0,從高位向地位劃分的時候會受到前導0的干擾,想起以前從低位開始劃分的方法,簡單的介紹下
比如1234,將區間劃分為0-1230 1231-1234,兩個區間,第二個區間顯然很好求,為了遞迴的順利進行,
void dfs(int n, int m)//上面統計的是1230-1234,1230的0是在下面補的
for(int i = 0; i < 10; ++i) ans[i] +=m*x;//122*,的個位
dfs(x-1, m*10);}
CI20 4 計算0 n之間某個數出現的次數
實現乙個方法,計算0 n之間2的出現次數。思路 有個類似題在程式設計之美和劍指offer上都出現過,是求1的個數。以12306這個數為例,首先我們看千位,千位上2的出現次數有 2000 2999 12000 12306,一共是1 1000 307 百位上2的出現次數有 200 299 1200 12...
統計整數中1出現的次數
題目來自acm之家 題目 親們!我們的外國友人yz這幾天總是睡不好,初中奧數里有乙個題目一直困擾著他,特此他向jobdu發來求助信,希望親們能幫幫他。問題是 求出1 13的整數中1出現的次數,並算出100 1300的整數中1出現的次數?為此他特別數了一下1 13中包含1的數字有1 10 11 12 ...
1 n中1出現的次數
輸入乙個整數 n 求1 n這n個整數的十進位制表示中1出現的次數。例如,輸入12,1 12這些整數中包含1 的數字有1 10 11和12,1一共出現了5次。示例 1 輸入 n 12 輸出 5 示例 2 輸入 n 13 輸出 6 解析需要通過找規律來分析。假設我們對5014這個數字求解。1 個位上1出...