门牌制作:题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小蓝要为一条街的住户制作门牌号。
这条街一共有 2020 位住户,门牌号从 1 到 2020 编号。
小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、7,即需要 1 个字符 0,2 个字符 1,1 个字符 7。
请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
代码:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
// 请在此输入您的代码
int i,j,n=0;
for(i=1;i<=2020;i++){
for(j=i;j>0;j=j/10){
if(j%10==2) n++;
}
}
printf("%d",n);
return 0;
}
暴力 直接依次数 需要多少个2
笔记:
因为0-2020,最多四位,所以也可以依次判断每一位需要几个2
for(i=1;i<=2020;i++){
if(i%10==2) n++;
if(i/10%10==2) n++;
if(i/100%10==2) n++;
if(i/1000%10==2) n++;
}