任务概述
查找某个整数 定义一个长度为 10 的整型数组 nums ,循环输入 10 个整数。
然后将输 入一个整数,查找此整数,找到输出下标, 没找到给出提示。
代码实现
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
//定义一个长度为 10 的整型数组 nums
int [] nums =new int [] {1,4,6,8,10,32,45,66,98,100};
//通过for循环 遍历输出数组中10个整数
for(int i = 0;i<nums.length;i++) {
System.out.print(nums[i]+" ");
}
System.out.println("请输入你要查找的数字:");
//通过键盘录入,找出需要查找的数字
int num=sc.nextInt();
//定义一个最小范围的下标索引
int minIndex=0;
//定义一个最大范围的下标索引
int maxIndex=nums.length-1;
//定义一个中间范围的下标索引
int centerIndex=(minIndex+maxIndex)/2;
//通过while循环找出该数
while(true) {
if(nums[centerIndex]>num) {//如果最大索引的数比需要找的数大
maxIndex=centerIndex-1;//最大索引指向中间索引的左边一个
}
else if(nums[centerIndex]<num) {//如果最小索引的数比需要找的数小
minIndex=centerIndex+1;//最小索引指向中间索引的右边一个
}
else {//如果中间索引的数等于需要找的数
break;//找到后 返回
}
if(minIndex>maxIndex) {
centerIndex=-1;
break;
}
centerIndex=(minIndex+maxIndex)/2;
}
System.out.println("需要找的数的位置在"+centerIndex);
}
}
运行结果
1 4 6 8 10 32 45 66 98 100 请输入你要查找的数字:
100
需要找的数的位置在9