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

依次得出個位十位… 上1的個數,進行相加即可。

public class Solution {
    public int NumberOf1Between1AndN_Solution(int n) {
        int sum=0;
        for(int m=1;m<=n;m=m*10){
            int x=n/(m*10);
            sum+=x*m;
            int y=n%(m*10);
            y=y/m;//
            if(y>1){//y>1  //y>m 1001
                sum+=m;
            }
            if(y==1){//y==1  //y--m
                sum+=(n%m+1);
            }
        }
        return sum;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章