統計整數中1出現的次數

2022-05-03 17:21:11 字數 980 閱讀 1374

題目來自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次方,如何巧妙處理而不採用最笨的方法。

實現**如下:

1

long

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整數...