2017.8.10每天五个编程题(六)

来源:互联网 发布:刻字机端口设置 编辑:程序博客网 时间:2024/06/04 19:01

今天只有四道题,因为有一个题涉及到二维数组,等到我们回顾到二维数组的时候再来讨论

第二十六题:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。

package cn.hpe.www;import java.util.Scanner;/* * 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续   判断第二个字母。 * */public class Test26 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入星期:");String a = scanner.nextLine();if (a.charAt(0) == 'm') {System.out.println("今天是星期一");} else if (a.charAt(0) == 'w') {System.out.println("今天是星期三");} else if (a.charAt(0) == 'f') {System.out.println("今天是星期五");} else if (a.charAt(0) == 't') {if (a.charAt(1) == 'u') {System.out.println("今天是星期二");} else if (a.charAt(1) == 'h') {System.out.println("今天是星期四");}} else if (a.charAt(0) == 's') {if (a.charAt(1) == 'a')System.out.println("今天是星期六");else if (a.charAt(1) == 'u')System.out.println("今天是星期日");elseSystem.out.println("输入错误");} elseSystem.out.println("输入错误");}}
运行结果:


    

第二十七题:求100之内的素数

package cn.hpe.www;/* * 题目:求100之内的素数   使用除sqrt(n)的方法求出的素数不包括2和3 * */public class Test27 {public static void main(String[] args) {boolean a = false;System.out.print(2 + " ");System.out.print(3 + " ");for (int i = 3; i < 100; i++) {for (int j = 2; j < Math.sqrt(i); j++) {if (i % j == 0) {a = false;break;} else {a = true;}}if (a == true) {System.out.print(i + " ");}}}}


运行结果:


第二十八题:对10个数进行排序

package cn.hpe.www;import java.util.Scanner;/* * 题目:对10个数进行排序 * */public class Test28 {public static void main(String[] args) {int[] arr = new int[10];System.out.println("请输入十个数:");Scanner scanner = new Scanner(System.in);for (int i = 0; i < 10; i++) {arr[i] = scanner.nextInt();}for (int i = 0; i < 10; i++) {for (int j = 0; j < i; j++) {if (arr[i] < arr[j]) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}for (int i = 0; i < 10; i++) {System.out.print(arr[i] + " ");}}}

运行结果:

第二十九题:求一个3*3矩阵对角线元素之和

第三十题:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 

package cn.hpe.www;import java.util.Scanner;/* * 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。  * 在这里我们使用二分法进行比较 * */public class Test30 {public static void main(String[] args) {int[] arr = { 10, 20, 30, 40, 50 };int[] arrchange = new int[arr.length + 1];System.out.print("before change:  ");for (int i = 0; i < arr.length; i++) {System.out.print("  " + arr[i]);}System.out.println();System.out.println("Input a number:  ");Scanner scanner = new Scanner(System.in);int number = scanner.nextInt();for (int i = 0; i < arr.length; i++) {arrchange[i] = arr[i];}int location = insort(arrchange, number);for (int i = arrchange.length - 1; i > location; i--) {arrchange[i] = arrchange[i - 1];}arrchange[location] = number;System.out.print("changed:  ");for (int i = 0; i < arrchange.length; i++) {System.out.print("  " + arrchange[i]);}}public static int insort(int[] arrchange, int number) {int low = 0;int high = arrchange.length - 1;int mid = (low + high) / 2;if (number > arrchange[high - 1]) { // 判断是否大于原数组最后一个元素return high;} else if (number < arrchange[0]) { // 判断是否小于原数组的第一个元素return 0;} else {while (low != high) {if (number == arrchange[mid]) { // 判断是否等于查找中间的元素break;} else if (1 == high - low) {break;} else if (number < arrchange[mid]) {high = mid;mid = (low + high) / 2;} else {low = mid;mid = (low + high) / 2;}}return mid + 1;}}}

运行结果: