思考:通过实例推导每次都是把1消耗完,当1没有的时候就结束了,所以可以练习门牌制作那道题,检查1的个数 。
门牌制作;蓝桥杯-门牌制作-CSDN博客
解答:
#include<iostream>
using namespace std;
int sum = 0,i=1;
void check(int n)//检查1的个数
{
while (n)
{
if (n % 10 == 1) sum++;
n /= 10;
}
}
int main()
{
while(sum<2021)
{
check(i);
i++; //需要注意的是在2021时已经多了一个要减去
}
i--;
cout << i <<endl;
}