一、门牌制作
**答案:**624
**解析:**一看就非常简单,进行遍历。不过存在一个问题,就是这个b,如果不使用,就用原来的i,那么在进行i=i/10之后i变成0,之后由于for循环,进行i++;,所以i永远等于1。
public class 门牌制作 {
public static void main(String[] args) {
int count =0;
for (int i = 1; i <=2020 ; i++) {
int b = i;//很关键
while (b!=0)
{
int a = b%10;//之后做,把这个地方写成i,导致结果
if (a==2)
{
count++;
}
b = b/10;
}
}
System.out.println(count);
}
}
二、寻找2020
答案:16520
**解析:**这道题我没有运行成功,可能是因为文件读取方面吧。但是理论应该可以AC。
这道题因为读取时需要使用文件的读取,有几百行,可以使用BufferedReader;来读取,需要注意的是使用readline方法,如果文件里没有内容,则会返回null。
因此我们要利用while(s.readline()!=null)来对文件进行读取,读取的字符串再转换成char数组,之后进行暴力求解就可以
import java.io.*;
public class 寻找2020 {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(new FileInputStream("D://data.txt")));
String s = new String("");
char[][] arr = new char[300][300];//字符型数组
int cur = 0;//
int ans = 0;
while ((s=bf.readLine())!=null){
arr[cur++] = s.toCharArray();//读取时转换成字符型数组
}
for (int i = 0;