#include <iostream>
#include <string>
using namespace std;
//f(n)是统计从1到n出现的1的次数的总和,输出从1到4000000000的所有f(n)=n的n的值
//计算一个数字中1出现的个数
int count1(int num){
int res=0;
while (num)
{
if(num%10==1)
res++;
num=num/10;
}
return res;
}
//统计从1到n的数字中出现1的次数的总和
int countn(int num){
int res=0;
for (int i=1;i<=num;i++)
res+=count1(i);
return res;
}
int main(){
int i=110;
cout << count1(i) << endl;
int j=13;
cout << countn(j) << endl;
//否则会溢出
const unsigned int num=4000000000;
for (unsigned int m=1;m<=num;m++)
{
if (countn(m)==m)
cout << m << endl;
//cout << m << endl;
}
return 0;
}