劍指Offer 整數中1出現的次數

2021-09-26 21:23:27 字數 612 閱讀 3147

時間限制:1秒 空間限制:32768k 熱度指數:226203

本題知識點: 查詢數學

求出1~13的整數中1出現的次數,並算出100~1300的整數中1出現的次數?為此他特別數了一下1~13中包含1的數字有1、10、11、12、13因此共出現6次,但是對於後面問題他就沒轍了。acmer希望你們幫幫他,並把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的次數(從1 到 n 中1出現的次數)。

處理方法:設當前處理的為第now位(從右向左起,最右邊的一位是第一位),左側數字為left,右側數字為right,now上的數字為cur

則當前為可以取到1的次數有

若cur==0,則sum=left*10^(now-1) 

若cur==1,則sum=left*10^(now-1)+right+1;

若cur>1,則sum=(left+1)*10^(now-1);

**如下:

class solution else if(cur==1)else

right+=cur*i;

cur=left%10;

left/=10;

} return sum;

}};

劍指offer 整數中1出現的次數

求出1 13的整數中1出現的次數,並算出100 1300的整數中1出現的次數?為此他特別數了一下1 13中包含1的數字有1 10 11 12 13因此共出現6次,但是對於後面問題他就沒轍了。acmer希望你們幫幫他,並把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的次數。這是劍指offer...

整數中1出現的次數(劍指offer)

求出1 13的整數中1出現的次數,並算出100 1300的整數中1出現的次數?為此他特別數了一下1 13中包含1的數字有1 10 11 12 13因此共出現6次,但是對於後面問題他就沒轍了。acmer希望你們幫幫他,並把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的次數 從1 到 n 中1...

劍指offer 整數中1出現的次數

時間限制 1秒 空間限制 32768k 熱度指數 244020 本題知識點 查詢 數學求出1 13的整數中1出現的次數,並算出100 1300的整數中1出現的次數?為此他特別數了一下1 13中包含1的數字有1 10 11 12 13因此共出現6次,但是對於後面問題他就沒轍了。acmer希望你們幫幫他...