class Solution {
public:
int NumberOf1Between1AndN_Solution(int n)
{
int nCurBit = n % 10;
int nForward = n / 10;
int nBackward = 0;
int nBase = 1;
int nSum = 0;
while(n / nBase){
if(nCurBit == 0)
nSum += nForward * nBase;
else if(nCurBit == 1){
nSum += nForward * nBase;
nSum = nSum + nBackward + 1;
}else
nSum += (nForward + 1) * nBase;
nCurBit = nForward % 10;
nBase *= 10;
nForward = n / (nBase * 10);
nBackward = n % nBase;
}
return nSum;
}
};
整數中1出現的次數(從1到n整數中1出現的次數)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.