这个方法复杂度过高,但是确是很容易理解与想到的。把每个数字转换成字符串,然后检查每个字符串是否含有1这个字符,计数。

class Solution {
public:
    void transform(int a, int &cnt){
        string s;
        s = to_string(a);
        for(int i=0; i<s.size(); i++){
            if(s[i]=='1') cnt++;
        }
    }
    int NumberOf1Between1AndN_Solution(int n)
    {
        int cnt =0;
        for(int i=1; i<=n; i++){
            transform(i,cnt);
        }
        return cnt;
    }
};