蓝桥杯算法题之基础算法查找整数 Java代码为例

余生长醉 提交于 2020-01-21 01:47:22

蓝桥杯算法题

基础算法之查找整数

问题描述

给出一个包含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();
	}
}

在这里插入图片描述
这样子提交就会提示运行错误,因此建议大家在刷题的时候也要注意这一点

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!