整數中1出現的次數(從1到n整數中1出現的次數)


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;
	}
};


發佈了119 篇原創文章 · 獲贊 2 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章