第六章 编程题

在这里插入图片描述

import java.util.Arrays;
import java.util.Scanner;

public class lian6_1 {
	public static void main(String[] args) {
		int[] numbers=new int[0];
		int[] counts=new int[0];
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter the integers between 1 and 100:");
		while(true){
			int num=scanner.nextInt();
			if(num==0){
				break;
			}
			int index=isContain(numbers,num);
			if(index==-1){
				numbers=Arrays.copyOf(numbers, numbers.length+1);
				numbers[numbers.length-1]=num;
				counts=Arrays.copyOf(counts,counts.length+1);
				counts[counts.length-1]=1;
			}else{
				counts[index]++;
			}
		}
		for(int i=0;i<numbers.length;i++){
			System.out.printf("%d occurs %d %s\n",numbers[i],counts[i],counts[i]>1?"times":"time");
		}
	}

	public static int isContain(int[] numbers, int num) {
		for(int i=0;i<numbers.length;i++){
			if(numbers[i]==num){
				return i;
			}
		}
		return -1;
	}
}

在这里插入图片描述

import java.util.Arrays;
import java.util.Scanner;

public class lian6_2 {
	public static void main(String[] args) {
		int[] numbers=new int[0];
		Scanner scanner=new Scanner(System.in);
		System.out.println("Enter a numbers:");
		for(int i=1;i<=10;i++){
			int num=scanner.nextInt();
			if(lian6_1.isContain(numbers, num)==-1){
				numbers=Arrays.copyOf(numbers, numbers.length+1);
				numbers[numbers.length-1]=num;
			}
		}
		System.out.println(Arrays.toString(numbers));
	}
}

在这里插入图片描述

import java.util.Scanner;

public class lian6_3 {
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter ten numbers:");
		double[] nums=new double[10];
		for(int i=0;i<nums.length;i++){
			nums[i]=scanner.nextDouble();
		}
		double deviation=deviation(nums);
		System.out.println(deviation);
	}
	public static double deviation(double[] nums){
		double mean=mean(nums);
		double sum=0;
		for(int i=0;i<nums.length;i++){
			sum+=Math.pow(nums[i]-mean, 2);
		}
		return Math.sqrt(sum/nums.length-1);
	}
	public static double mean(double[] nums){
		double sum=0;
		for(int i=0;i<nums.length;i++){
			sum+=nums[i];
		}
		return sum/nums.length;
	}
}

6.4
在这里插入图片描述

import java.util.Arrays;
import java.util.Scanner;

public class lian6_4 {
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		System.out.println("Enter ten numbers:");
		int[] nums=new int[10];
		for(int i=0;i<nums.length;i++){
			nums[i]=scanner.nextInt();
		}
		reverse(nums);
		System.out.println(Arrays.toString(nums));
	}

	private static void reverse(int[] nums) {
		for(int i=0;i<nums.length/2;i++){
			nums[i]=nums[i]^nums[nums.length-1-i];
			nums[nums.length-1-i]=nums[i]^nums[nums.length-1-i];
			nums[i]=nums[i]^nums[nums.length-1-i];
		}
	}
}

在这里插入图片描述

import java.util.Scanner;
public class Demo6_5 {
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter list:");
		int length=scanner.nextInt();
		int[] nums=new int[length];
		for(int i=0;i<nums.length;i++){
			nums[i]=scanner.nextInt();
		}
		if(isSortedByUpper(nums)){
			System.out.println("yes by upper");
		}else{
			System.out.println("no by upper");
		}
		if(isSortedByLower(nums)){
			System.out.println("yes by lower");
		}else{
			System.out.println("no by lower");
		}
	}
	private static boolean isSortedByLower(int[] nums) {
		for(int i=0;i<nums.length-1;i++){
			if(nums[i]<nums[i+1]){
				return false;
			}
		}
		return true;
	}
	private static boolean isSortedByUpper(int[] nums) {
		for(int i=0;i<nums.length-1;i++){
			if(nums[i]>nums[i+1]){
				return false;
			}
		}
		return true;
	}
}

在这里插入图片描述

import java.util.Arrays;
import java.util.Scanner;

public class lian6_6_1 {
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter the number of balls to drop:");
		int ballsNumber=scanner.nextInt();
		System.out.print("Enter the number of slots int the bean machine:");
		int slotsNumber=scanner.nextInt();
		
		String[] paths=new String[ballsNumber];
		for(int i=0;i<paths.length;i++){
			paths[i]="";
		}
		//将每个豆子的轨迹用左右表示
		for(int i=0;i<paths.length;i++){
			for(int j=1;j<=slotsNumber-1;j++){
				paths[i]+=(int)(Math.random()*2)==0?"L":"R";
			}
		}
		
		for(int i=0;i<paths.length;i++){
			System.out.println(paths[i]);
		}
		//定义槽子数组
		int[] slots=new int[slotsNumber];
		/*0个R 豆子在第一个槽(但槽子的角标从0开始的)
		 *1个R 豆子在第二个槽
		 *.......
		 * 通过判断R的个数即可知道豆子最终落在哪个槽
		 * 然后再槽子的位置++即可
		 * */		
		for(int i=0;i<paths.length;i++){
			int count=HowManyR(paths[i]);
			slots[count]++;
		}
		System.out.println(Arrays.toString(slots));
		print(slots);
	}

	private static void print(int[] slots) {
		int max=getMax(slots);
		//max代表槽子中豆子最多的个数
		for(int i=0;i<max;i++){//i代表行
			for(int j=0;j<slots.length;j++){//slots.length代表列
				//max-i>槽子中的豆子数的话,打印空格
				if(max-i>slots[j]){
					System.out.print("| ");
				}else{
					System.out.print("|o");
				}
			}
			System.out.println("| ");
		}
		
	}

	private static int getMax(int[] slots) {
		int max=0;
		for(int i=0;i<slots.length;i++){
			if(slots[i]>max){
				max=slots[i];
			}
		}
		return max;
	}

	private static int HowManyR(String path) {
		int count=0;
		for(int i=0;i<path.length();i++){
			if(path.charAt(i)=='R'){
				count++;
			}
		}
		return count;
	}
}

在这里插入图片描述

public class lian6_7 {
	public static void main(String[] args) {
		//布尔类型数组模拟柜子开关
		boolean[] box=new boolean[100];
		//100个学生
		for(int i=1;i<=100;i++){
			for(int j=0;j<box.length;j+=i){
				box[j]=!box[j];
			}
		}
		for(int i=0;i<box.length;i++){
			System.out.print(box[i]==true?"开":"关"+" ");
			if(i%10==9){
				System.out.println();
			}
		}
	}
}

在这里插入图片描述

import java.util.Arrays;

public class lian6_8_1 {
	public static void main(String[] args) {
		String[] suits={"Spades","Clubs","Hearts","Diamonds"};
		String[] ranks={"Ace","2","3","4","5","6","7","8",
						"9","10","Jack","Queen","King"};
		String[] result=new String[0];
		int count=0;
		while(result.length!=4){
			int index=(int)(Math.random()*4);
			if(!isContain(result,suits[index])){
				result=Arrays.copyOf(result,result.length+1);
				result[result.length-1]=suits[index];
			}
			count++;
		}
		for(int i=0;i<result.length;i++){
			System.out.printf("%s of %s\n",ranks[(int)(Math.random()*13)],result[i]);
		}
		System.out.println("Number of picks:"+count);
	}

	private static boolean isContain(String[] result, String suit) {
		for(int i=0;i<result.length;i++){
			if(result[i].equals(suit)){
				return true;
			}
		}
		return false;
	}
}

在这里插入图片描述

import java.util.Scanner;

public class lian6_10 {
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter list1:");
		int len1=scanner.nextInt();
		int[] list1=new int[len1];
		for(int i=0;i<list1.length;i++){
			list1[i]=scanner.nextInt();
		}
		System.out.print("Enter list2:");
		int len2=scanner.nextInt();
		int[] list2=new int[len1];
		for(int i=0;i<list2.length;i++){
			list2[i]=scanner.nextInt();
		}
		System.out.println(equals(list1, list2));
	}
	public static boolean equals(int[] list1,int[] list2){
		if(list1.length!=list2.length){
			return false;
		}
		for(int i=0;i<list1.length;i++){
			if(list1[i]!=list2[i]){
				return false;
			}
		}
		return true;
	}
}

在这里插入图片描述

import java.util.Arrays;
import java.util.Scanner;
public class lian6_11 {
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter list1:");
		int len1=scanner.nextInt();
		int[] list1=new int[len1];
		for(int i=0;i<list1.length;i++){
			list1[i]=scanner.nextInt();
		}
		System.out.print("Enter list2:");
		int len2=scanner.nextInt();
		int[] list2=new int[len1];
		for(int i=0;i<list2.length;i++){
			list2[i]=scanner.nextInt();
		}
		
		if(equals(list1, list2)){
			System.out.println("Tow lists are identical ");
		}else{
			System.out.println("Tow lists are not identical ");
		}
	}
	
	public static boolean equals(int[] list1,int[] list2){
		Arrays.sort(list1);
		Arrays.sort(list2);
		if(list1.length!=list2.length){
			return false;
		}
		for(int i=0;i<list1.length;i++){
			if(list1[i]!=list2[i]){
				return false;
			}
		}
		return true;
	}
}

在这里插入图片描述

import java.util.Arrays;
import java.util.Scanner;

public class lian6_12 {
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		System.out.println("Enter 10 numbers :");
		int[] nums=new int[0];
		for(int i=0;i<10;i++){
			int num=scanner.nextInt();
			if(!contain(nums,num)){
				nums=Arrays.copyOf(nums, nums.length+1);
				nums[nums.length-1]=num;
			}
		}
		for(int i=0;i<nums.length-1;i++){
			for(int j=i+1;j<nums.length;j++){
				System.out.printf("[%s,%s]",nums[i],nums[j]);
			}
			System.out.println();
		}
	}
	private static boolean contain(int[] nums, int num) {
		for(int i=0;i<nums.length;i++){
			if(nums[i]==num){
				return true;
			}
		}
		return false;
	}
}

6.13
在这里插入图片描述

import java.util.Scanner;

public class lian6_13 {
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter the numbers of values: ");
		int n=scanner.nextInt();
		int[] list=new int[n];
		System.out.print("Enter the values:");
		for(int i=0;i<list.length;i++){
			list[i]=scanner.nextInt();
		}
	
		if(isConsecutiveFour(list)){
			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-3;i++){
			if(values[i]==values[i+1]&&values[i]==values[i+2]&&values[i]==values[i+3]){
				return true;
			}
		}
		return false;
	}
}
import java.util.Scanner;

public class lian6_13_1 {
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter the number of values:");
		int len=scanner.nextInt();
		int[] nums=new int[len];
		if(len<=0){
			System.out.println("输入错误");
			return;
		}
		System.out.print("Enter the valuse:");
		for(int i=0;i<nums.length;i++){
			nums[i]=scanner.nextInt();
		}
		boolean b=isConsecutiveFour(nums);
		System.out.println(b);
	}
	public static boolean isConsecutiveFour(int[] nums){
		for(int i=0;i<nums.length-1;){
			int count=1;
			for(int j=i+1;j<nums.length;j++){
				if(nums[i]==nums[j]){
					count++;
				}else{
					break;
				}
			}
			i=i+count;
			if(count>=4){
				return true;
			}
		}
		return false;
	}
}

在这里插入图片描述

import java.util.Arrays;
import java.util.Scanner;

public class lian6_14 {
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		System.out.println("Enter list1:");
		int len1=scanner.nextInt();
		int[] list1=new int[len1];
		for(int i=0;i<list1.length;i++){
			list1[i]=scanner.nextInt();
		}
		
		System.out.println("Enter list2:");
		int len2=scanner.nextInt();
		int[] list2=new int[len2];
		for(int i=0;i<list2.length;i++){
			list2[i]=scanner.nextInt();
		}
		int[] list3=merge(list1, list2);
		System.out.println(Arrays.toString(list3));
	}
	public static int[] merge(int[] list1,int[] list2){
		for(int i=0;i<list2.length;i++){
			list1=Arrays.copyOf(list1, list1.length+1);
			list1[list1.length-1]=list2[i];
		}
		Arrays.sort(list1);
		return list1;
	}
}

在这里插入图片描述

import java.util.Scanner;
/*1.定义一个单词数组
 *2.随机选取单词数组中的单词
 *3.创建一个长度等于单词长度的boolean数组
 *4.根据布尔类型的打印单词  true 字母  false *
 *5.用户输入一个字母
 *6.判断该字母是否出现在单词中
 *		6.1如果出现
 *			6.1.1密文(false)  改变字母对应位置的状态为true
 * 			6.1.2明文    提示用户字母已存在
 * 		6.2不存在
 * 			错误计数 count++
 *  执行4
 *  
 *  7.直到stutas中状态全为True结束猜词
 *  8.提示是否下一次游戏进行
 * */
public class lian6_15 {
	public static void main(String[] args) {
		
		String[] words={"wang","shi","yang","heng","diomg","qing","zong"};
		Scanner scanner=new Scanner(System.in);
		while(true){
			String word=words[(int)(Math.random()*words.length)];
			boolean[] stauts=new boolean[word.length()];
			int counts=0;
			while(!isStautsAllTrue(stauts)){
				String info=getWordByStauts(word,stauts);
				System.out.print("(Guess) Enter a letter in word "+info+">");
				String letter=scanner.next();
				if(isLetterInword(letter,word)){
					if(isLetterInWordTrue(letter,word,stauts)){
						System.out.printf("\t %s is already in the word\n",letter);
					}else{
						changLetterStauts(letter,word,stauts);
					}
				}else{
					counts++;
					System.out.printf("\t %s is not in word\n",letter);
				}
			}
			System.out.printf("The word is %s .You missed %d time\n",word,counts);
			System.out.print("Do you want to guess another word?(y/n)");
			String chioce=scanner.next();
			if(chioce.equalsIgnoreCase("n")){
				break;
			}
		}
		System.out.println("Game Over!");
	}
	private static void changLetterStauts(String letter, String word,
			boolean[] stauts) {
		for(int i=0;i<word.length();i++){
			if(letter.equals(word.charAt(i)+"")){
				stauts[i]=true;
			}
		}
	}
	private static boolean isLetterInWordTrue(String letter, String word,
			boolean[] stauts) {
		for(int i=0;i<word.length();i++){
			if(letter.equals(word.charAt(i))){
				return stauts[i];
			}
		}
		return false;
	}

	private static boolean isLetterInword(String letter, String word) {
		for(int i=0;i<word.length();i++){
			if(letter.equals(word.charAt(i)+"")){
				return true;
			}
		}
		return false;
	}
	private static String getWordByStauts(String word, boolean[] stauts) {
		String info="";
		for(int i=0;i<stauts.length;i++){
			if(stauts[i]){
				info+=word.charAt(i);
			}else{
				info+="*";
			}
		}
		return info;
	}
	private static boolean isStautsAllTrue(boolean[] stauts) {
		for(int i=0;i<stauts.length;i++){
			if(stauts[i]==false){
				return false;
			}
		}
		return true;
	}
}

猜你喜欢

转载自blog.csdn.net/sl1130398099/article/details/83578315