题目
小蓝要为一条街的住户制作门牌号。
这条街一共有2020 位住户,门牌号从1 到2020 编号。
小蓝制作门牌的方法是先制作0 到9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌1017 需要依次粘贴字符1、0、1、7,即需要1 个字符0,2 个字符1,1 个字符7。
请问要制作所有的1 到2020 号门牌,总共需要多少个字符2?
思路
遍历每个数时,看这个数的每一位是不是2,是则加1.
代码
#include<iostream>
using namespace std;
int n;//全局变量的初始值就是0
int main()
{for(int i = 1;i <= 2020;i++){int num = i;while(num){//遍历这个数的每一位 int digit = num%10;if(digit == 2) n++;num = num/10;}}cout<<n;return 0;
}