1、(模式识别方面:四个连续相等的数)编写下面的方法,测试某个数组是否有四个连续的值相同的数字。
public static boolean isConsecutiveFour(int[] values)
编写测试程序,提示用户输入一个整数列表,如果这个列表中有四个连续的具有相同值的数,那就显示true;否则,显示fa1se。程序应该首先提示用户键入输人的大小,即列表中值的个数。这里是一个运行示例。
import java.util.Scanner;
public class Demo90 {
public static void main(String[] args) {
System.out.print("Enter the number of values: ");
int num = input();
int[] values = new int[num];
System.out.print("Enter the values: ");
for (int i = 0; i < num; i++)
values[i] = input();
if(isConsecutiveFour(values))
System.out.println("The list has consecutive fours");
else
System.out.println("The list has no consecutive fours");
}
public static boolean isConsecutiveFour(int[] values){
for (int i = 0; i < values.length - 4; i++){
boolean flag = true;
for(int j = 1; j < 4; j++)
if(values[i + j] != values[i]) {
flag = false;
break;
}
if(flag)
return true;
}
return false;
}
public static int input(){
Scanner Sc = new Scanner(System.in);
return Sc.nextInt();
}
}
2、(合并两个有序列表)编写下面的方法,将两个有序列表合并成一个新的有序列表。
public static int[]merge(int[]listl, int[] list2)
只进行 1ist1.1ength+list2.1ength次比较来实现该方法。编写一个测试程序,提示用户输入两个有序列表,然后显示合并的列表。下面是一个运行示例。注意,输人的第一个数字表示列表中元素的个数。该数字不是列表的一部分。
import java.util.Scanner;
public class Demo91 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("Enter list1 size and contents:");
int length1=input.nextInt();
int[] list1=new int[length1];
for(int i=0;i<list1.length;i++){
list1[i]=input.nextInt();
}
System.out.print("Enter list2 size and contents:");
int length2=input.nextInt();
int[] list2=new int[length2];
for(int i=0;i<list2.length;i++){
list2[i]=input.nextInt();
}
for(int i=0;i<merge(list1,list2).length;i++)
System.out.print(merge(list1,list2)[i]+" ");
}
public static int[] merge(int[] list1,int[] list2){
int[] list3=new int[list1.length+list2.length];
for(int i=0;i<list1.length;i++){
list3[i]=list1[i];
}
for(int i=list1.length,j=0;i<list1.length+list2.length;i++,j++){
if(j>list2.length)
break;
list3[i]=list2[j];
}
for (int i = 0; i < list3.length-1; i++) {
for (int j = i + 1; j < list3.length; j++) {
if (list3[i] > list3[j]) {
int temp = list3[j];
list3[j] = list3[i];
list3[i] = temp;
}
}
}
return list3;
}
}