#include <stdlib.h>
int main(int argc, char *argv[])
{
// 请在此输入您的代码
int i = 1;
int sum = 0;//记录已经用掉的1的数量
while (i)
{
int tmp = i;
while (tmp)
{
if (tmp % 10 == 1)
{
sum++;
}
tmp /= 10;
}
if (sum == 2021)
{
break;
}
i++;
}
printf("%d", i);
return 0;
}
解题思路:文中说一共2021个1,然后这些个1来组成各个含有1的数字,我们只需要知道什么时候2021个1全部被用完即可。也就是外层套一个循环来从1开始往后一个一个数字的代入,里面的循环判断这个数有几个1,一直到1被统计的个数达到2021即可。