题目一:
小蓝要为一条街的住户制作门牌号。这条街一共有2020位住户,门牌号从1到2020编号。小蓝制作门牌的方法是先制作0到9这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌1017需要依次粘贴字符1、0、1、7,即需要1个字符0,2个字符1,1个字符7。请问要制作所有的1到2020号门牌,总共需要多少个字符2
解题思路: 暴力搜索,判断每个位置的字符是否满足条件
#include <stdio.h>
int calu(int num){ // calu为计算字符2的函数
int ans = 0; // 字符为2的数目
while(num){ // num为门牌号数
if(num % 10 ==2){ // 用 取余“%” 和 整除“/” 进行计算
ans++;
}
num /= 10;
}return ans;
}
int main(){
int x;
int i;
for(i=1; i<=2020; i++){
x += calu(i);
}
printf("%d\n",x);
return 0;
}
答案:624