从 1 到 n 整数中 1 出现的次数

class Solution {
public:
    int numberOf1Between1AndN_Solution(int n) {
        vector<int> q;
        do
        {
            q.push_back(n%10);
            n/=10;
        }while(n);
        int res=0;
        for (int i = q.size()-1; i >=0 ; i -- )//从最高位开始
        {
            int left=0,right=0,t=1;
            for (int j = q.size()-1; j > i; j -- )   left=left*10+q[j];
            for (int j = i-1; j >= 0; j -- )    right=right*10+q[j],t=t*10;
            res+=left*t;//前两位小于ab时
            //前两位取ab时
            if(q[i]==1) res+=right+1;
            else if(q[i]>1) res+=t;
        }
        return res;
    }
};
posted @   穿过雾的阴霾  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示