这道题其实可以用很简单的解法来解。我们观察到可以将1-n的数字变成字符串,然后统计出字符串中1出现的次数即可。

class Solution {
public:
    int NumberOf1Between1AndN_Solution(int n)
    {
        string str="";
        for(int i=1; i<=n; i++){
            str += to_string(i);
        }
        int size = str.size();
        int cnt = 0;
        for(int i=0; i<size; i++){
            if(str[i]=='1') cnt++;
        }
        return cnt;
    }
};