1的个数

class Solution {
public:
int NumberOf1Between1AndN_Solution(int n)
{
int count=0;
if(n<10)
return 1;
if(n==10)
return 2;
if(n<100)
{

        if(n%10==0)
        {
            //以下是个位数位1的情况
            count=n/10;
          //十位为1的情况
            count+=9;//扣掉11所以加9
        }

        if(n%10>0)
        {
            count=n/10+1;
            if(n>20)
                count+=10;//我觉得55用例输入有问题,没有抠出有两个11的问题
            else if(n<20)
                count +=n%10;
        }
    }
    if(n>=100&n<1000)
        return NumberOf1Between1AndN_Solution(99)*n
    return count;

}

};
//不做了,思路错了

全部评论

相关推荐

11-07 16:07
深圳大学 运营
前端飞升:学长,阿里不是卡双非吗,我深也能去吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务