题目描述
老ACMer了(虽然我没写过)
本题知识点: 数学
解答
没什么思路 直接放弃
解答 https://blog.csdn.net/weixin_38481963/article/details/88313953
暴力法
public class Solution {
public int NumberOf1Between1AndN_Solution(int n) {
int sum = 0;
for(int i=1;i<=n;i++)
{
int k = i;
while(k!=0){
if(k%10==1){
sum++;
}
k = k/10;
}
}
return sum;
}
}
数学解有点神奇
public class Solution {
public int NumberOf1Between1AndN_Solution(int n) {
int ans = 0;
for(long m=1; m<=n; m*=10)
{
ans += (n/m+8)/10*m + (n/m%10==1?(n%m+1):0);
}
return ans;
}
}