蓝桥杯算法题
基础算法之查找整数
问题描述
给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
输入格式
第一行包含一个整数n。
第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。
第三行包含一个整数a,为待查找的数。
输出格式
如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。
样例输入
6
1 9 4 8 3 9
9
样例输出
2
数据规模与约定
1 <= n <= 1000。
给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
输入格式
第一行包含一个整数n。
第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。
第三行包含一个整数a,为待查找的数。
输出格式
如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。
样例输入
6
1 9 4 8 3 9
9
样例输出
2
数据规模与约定
1 <= n <= 1000。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num = scanner.nextInt(); int []array = new int [num]; for (int i = 0; i < num; i++) { array[i] = scanner.nextInt(); } int m = scanner.nextInt(); for (int i = 0; i < num; i++) { if (array[i] == m) { System.out.println(i + 1); break; }else if (i == num - 1) { System.out.println(-1); } } scanner.close(); } }
这样子是可以正常编译通过的
然而,当我使用三个Scanner 的时候就会提示运行失败
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num = scanner.nextInt(); int []array = new int [num]; Scanner scanner2 = new Scanner(System.in); for (int i = 0; i < num; i++) { array[i] = scanner2.nextInt(); } Scanner scanner3 = new Scanner(System.in); int m = scanner3.nextInt(); for (int i = 0; i < num; i++) { if (array[i] == m) { System.out.println(i + 1); break; }else if (i == num - 1) { System.out.println(-1); } } scanner3.close(); scanner2.close(); scanner.close(); } }
这样子提交就会提示运行错误,因此建议大家在刷题的时候也要注意这一点