//方法一:
//遍历每一个数,将每个数转换成字符串,判断字符串中含有'1'字符的个数;
class Solution {
public:
int Count(string s){//写一个计算字符串中'1'的个数
int num=0;
for(auto &e:s){
if(e=='1')
num++;
}
return num;
}
int NumberOf1Between1AndN_Solution(int n) {
int ret=0;
for(int i=1;i<=n;i++){
ret+=Count(to_string(i));//将整数转换成字符串的函数
}
return ret;
//方法二:
//遍历每个数,将每个数/10判断个位为1,在循环%10直到数为0;
/*
if(n<=0) return 0;
int ret=0;
for(int i=1;i<=n;i++){//遍历每个数
int temp=i;
while(temp){//循环拆分判断个位是否有1,直到数为0;
if(temp%10==1)
ret++;
temp/=10;
}
}
return ret;
*/
}
};