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;

}

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

全部评论

相关推荐

10-13 16:58
门头沟学院 Java
点赞 评论 收藏
分享
迷茫的大四🐶:干脆大厂搞个收费培训得了,这样就人均大厂了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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