题目:力扣233.数字1的个数
给定一个整数 n
,计算所有小于等于 n
的非负整数中数字 1 出现的个数。
示例 1:
输入:n = 13
输出:6
示例 2:
输入:n = 0
输出:0
当下第一反应就是硬推
class Solution {
public:
int countDigitOne(int n) {
long i=1,s=0;
for(i;i<=n;i++)
{
num=i;
while(num)
{
if(num%10==1) s++;
num/=10;
}
}
return s;
}
};
很显然,这是会超时的,所以我们pass掉。
接着,就推理逻辑。