给定数组 int String[10]={0,1,2,3,4,5,6,7,8,9};输入“1”完成完成任务是 对任意
给定数组intString[10]={0,1,2,3,4,5,6,7,8,9};输入“1”完成完成任务是对任意读入一个整数x,在升序数组String中查找是否有与x等值的...
给定数组 int String[10]={0,1,2,3,4,5,6,7,8,9};输入“1”完成完成任务是 对任意读入一个整数x,在升序数组String中查找是否有与x等值的元素(用二分法)输入“2”完成任务是 求数组成员的总和输入“3” 打印出Get3输入“4” 打印出Get4
展开
展开全部
import java.util.Scanner;
public class KonwString {
static int count;
public static void main(String[] args) {
int String[]={0,1,2,3,4,5,6,7,8,9};
Scanner sc = new Scanner(System.in);
System.out.println("输入编号");
int x = sc.nextInt();
switch(x){
case 1:
System.out.println("输入要查找的值");
int x1 = sc.nextInt();
int a = searchRecursive(String, 0, String.length - 1, x1);
if(a != -1)
System.out.println("有相等的数值,位置是"+a);
else
System.out.println("数组中没有此值");
break;
case 2:
int sum = 0;
for(int i = 0;i<10;++i)
sum +=String[i];
System.out.println("和是:"+sum);
break;
case 3:
System.out.println(String[3]);
break;
case 4:
System.out.println(String[4]);
break;
default:
System.out.println("输入有误");
}
System.out.println("");
}
public static int searchRecursive(int[] array, int start, int end,
int findValue) {
// 如果配带数组为空,直接返回-1,即查找失败
if (array == null) {
return -1;
}
count++;
if (start <= end) {
// 中间位置
int middle = (start + end) / 1;
// 中值
int middleValue = array[middle];
if (findValue == middleValue) {
// 等于中值直接返回
碧肢 return middle;
} else if (findValue < middleValue) {
// 小于中值时在中值前面找
return searchRecursive(array, start, middle - 1, findValue);
} else {
// 大于中值在中值后面找
return searchRecursive(array, middle + 1, end, findValue);
}
} else {
// 返悔卖世回-1,即查找失败
return -1;
}
}
}
更多追问追答
追问
为什么没有输出get3和输出get4呢
为什么没有输出get3和输出get4呢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询