題目來自acm之家:
題目:
親們!!我們的外國友人yz這幾天總是睡不好,初中奧數里有乙個題目一直困擾著他,特此他向jobdu發來求助信,希望親們能幫幫他。問題是:求出1~13的整數中1出現的次數,並算出100~1300的整數中1出現的次數?為此他特別數了一下1~13中包含1的數字有1、10、11、12、13因此共出現6次,但是對於後面問題他就沒轍了。acmer希望你們幫幫他,並把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的次數。
輸入:
輸入有多組資料,每組測試資料為一行。每一行有兩個整數a,b(0<=a,b<=1,000,000,000)。
輸出:
對應每個測試案例,輸出a和b之間1出現的次數。
樣例輸入:
0 51 13
21 55
31 99
樣例輸出:16
47分析:
詳見:該解法需要注意的幾點有:
1.如何將數拆分為前面部分+中間位+後面部分,即front+mid+back。
2.對於mid,如何找到其規律:
當mid > 1時, 1出現的次數為10^(back的位數) * (front+1) ;
當mid == 1時,1出現的次數為10^(back的位數)* front + (back + 1) ;
當mid == 0時,1出現的次數為10^(back的位數) * front ;
3.如何處理10的n次方,如何巧妙處理而不採用最笨的方法。
實現**如下:
1long
long tongji1(long
longn)2
20return
num;
21 }
整數中1出現的次數
針對牛客網試題作個記錄 問題 整數中1出現的次數 從1到n整數中1出現的次數 求出1 13的整數中1出現的次數,並算出100 1300的整數中1出現的次數?為此他特別數了一下1 13中包含1的數字有1 10 11 12 13因此共出現6次,但是對於後面問題他就沒轍了。acmer希望你們幫幫他,並把問...
整數中1出現的次數
乙個更好的辦法是利用數學公式直接計算出最終的結果,該方法是依次求出數字 x 在個位 十位 百位等等出現的次數,再相加得到最終結果。這裡的 x 1,9 x 1,9 因為 x 0 x 0不符合下列規律,需要單獨計算。首先要知道以下的規律 依此類推,從 1 至 10 i 10i 在它們的左數第二位 右數第...
整數中1出現的次數
題目 求出1 13的整數中1出現的次數,並算出100 1300的整數中1出現的次數?為此他特別數了一下1 13中包含1的數字有1 10 11 12 13因此共出現6次,但是對於後面問題他就沒轍了。acmer希望你們幫幫他,並把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的次數。從1到n整數...