题目
小蓝要为一条街的住户制作门牌号。
这条街一共有2020 位住户,门牌号从1 到2020 编号。
小蓝制作门牌的方法是先制作0 到9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌1017 需要依次粘贴字符1、0、1、7,即需要1 个字符0,2 个字符1,1 个字符7。
请问要制作所有的1 到2020 号门牌,总共需要多少个字符2?
解法一:
按照我们正常的思路,这个题目统计1到2020的数字中有多少的数字二,我们可以利用循环和和变量%10来判断每一位的数字上是不是有数字等于2,从而累加输出字上是不是有数字等于2,从而累加输出
public static void main(String[] args) {
int ans=0;
for (int i = 0; i <=2020; i++) {
int r=i;
while (r>=1){
if(r%10==2){
ans++;
}
r/=10;
}
}
System.out.println(ans);
}
解法二:我们在比赛的时候可以利用其他的统计工具例如word
思路:我们可以打印1到2020所有的数字,然后放到word里面利用查找替换的功能来判断有几个2
这两种方法得出的结果都是624