蓝桥杯——BASIC-5——基础练习 查找整数
【摘要】 问题描述:给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。输入格式:第一行包含一个整数n。第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。第三行包含一个整数a,为待查找的数。输出格式:如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。数据规模与约定:1 <= n <= 1000。代码如下:package day;impo...
问题描述:
给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
输入格式:
第一行包含一个整数n。
第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。
第三行包含一个整数a,为待查找的数。
输出格式:
如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。
数据规模与约定:1 <= n <= 1000。
代码如下:
package day;
import java.util.Scanner;
public class day3 {
public static void main(String[] args) {
//基础练习 查找整数
boolean b = false;
int count = 0;
Scanner s = new Scanner(System.in);
int n = s.nextInt();
int arr[] = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = s.nextInt();
}
int num = s.nextInt();
for (int i = 0; i < n; i++) {
if (num == arr[i]) {
b = true;
count = i + 1;
break;
}
}
if (b) {
System.out.println(count + " ");
} else {
System.out.println(-1);
}
}
}
样例输入:
6
1 9 4 8 3 9
9
1 9 4 8 3 9
9
样例输出:
2
运行结果如下:
做题做多了就发现,题都挺简单,但是,如果用小白的思维,就会很麻烦。边做边看看别人做的,就会有一些长进的。
这个题,很容易就输出了第一个位置在哪儿。但稍微难一些的是如果没有需要输出-1。
本来我的想法是循环前赋一个值为0。如果找到就+1。最后判断,如果是0就输出-1。
但是当我看了别人的方法,就感觉超级好,是我没想到的所以就借鉴了思路,结果非常的成功。就是循环前赋个值为0,然后用这个值做循环。循环完,如果没有中途退出,那这个值最终肯定还是n,以此判断是否需要输出-1。感觉代码省了好几行。
加油!
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)