26.【程序26】
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。
1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
package com.niit.homework1; import java.util.Scanner; /** * @author: Annie * @date:2016年5月21日 * @description:【程序26】 题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。 */ public class JudgeWeek { static Scanner reader = new Scanner(System.in); public static void main(String[] args) { String n; do{ System.out.println("请输入第一个"); String num = reader.next(); num =smallChangBig(num); printJudge(num); System.out.println("是否继续(y/n)"); n = reader.next(); n=bigChangeToSmall(n); }while("y".equals(n)); } private static void printJudge(String num) { switch (num) { case "M": System.out.println("今天是星期一"); break; case "T": if("T".equals(num)){ System.out.println("请继续输入第二个字母"); String n = reader.next(); n=bigChangeToSmall(n); if("u".equals(n)){ System.out.println("今天是星期二"); }else if("h".equals(n)){ System.out.println("今天是星期四"); } } break; case "W": System.out.println("今天是星期三"); break; case "F": System.out.println("今天是星期五"); break; case "S": if("S".equals(num)){ System.out.println("请继续输入第二个字母"); String n = reader.next(); n=bigChangeToSmall(n); if("a".equals(n)){ System.out.println("今天是星期六"); }else if("u".equals(n)){ System.out.println("今天是星期天"); } } break; default: System.out.println("输入错误,请重新输入:"); break; } } /*将大写字母变成小写字母的方法*/ public static String bigChangeToSmall(String num){ String n= num.toLowerCase(); return n; } /*将小写字母变成大写字母的方法*/ public static String smallChangBig(String num){ String n =num.toUpperCase(); return n; } }
27.【程序27】
题目:求100之内的素数
package com.niit.homework1; /** * @author: Annie * @date:2016年5月21日 * @description:【程序27】 题目:求100之内的素数 (只能被一和本身整除的数) */ public class PrintPrime { public static void main(String[] args) { PrintPrime p = new PrintPrime(); System.out.print("100以内的素数有:"); for (int i = 0; i <100; i++) { if(p.prime(i)){ System.out.print(i+" "); } } } /*判断此数是不是素数*/ public boolean prime(int num){ if(num<2){ return false; } for (int j = 2; j <=Math.sqrt(num); j++) { if(num%j == 0){ return false; } }return true; } }
28.
29.【程序29】
题目:求一个3*3矩阵对角线元素之和
1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。
/** * */ package com.niit.homework1; import java.util.Scanner; /** * @author: Annie * @date:2016年5月22日 * @description:【程序29】 题目:求一个3*3矩阵对角线元素之和 */ public class MatrixSum { static Scanner in = new Scanner (System.in); public static void main(String[] args) { System.out.println("请输入你要求和的矩阵的行数n"); int n = in.nextInt(); int [][] arr = new int[n][n]; MatrixSum ms = new MatrixSum(); arr = ms.input(arr); System.out.println("对角线之和是:"+ms.diagonalSum(arr,n)); } /** * @param arr * 用于计算主对角线和次对角线之和的方法 */ private int diagonalSum(int[][] arr,int n) { int sum = 0 ; if(n%2==0){//如果行数是偶数,这对角线中间不会重复相加 sum = sumD(arr); }else{//如果是奇数行 int i=n/2; sum = sumD(arr)-arr[i][i]; } return sum; } /** * 输入数据,并将数据存在数组中的方法 */ private int[][] input(int [][] arr) { for (int i = 0; i <arr.length; i++) { for (int j = 0; j <arr[i].length; j++) { System.out.println("请输入第 "+(i+1)+"行第"+(j+1)+"个数"); arr[i][j]=in.nextInt(); } }System.out.println("原始数据是:"); print(arr); return arr; } /** * @param arr * 打印二维数组的方法: */ private void print(int[][] arr) { for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { System.out.print(arr[i][j]+"\t"); } System.out.println(); } } /** * @param arr * 用于计算行数是偶数的矩阵的对角线之和 */ private int sumD(int [][] arr){ int sum=0; for (int i = 0; i<arr.length; i++) { sum = sum+arr[i][i];//累加主对角线 } for (int i = 0; i < arr.length; i++) { sum = sum+arr[i][arr.length-1-i];//累加次对角线之和 } return sum;//偶数行对角线求和 } }
30.【程序30】
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,
依次后移一个位置。
package com.niit.homework1; import java.util.Scanner; /** * @author: Annie * @date:2016年5月18日 * @description:【程序30】 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 */ public class InsertNum { public static void main(String[] args) { int arr[]={1,4,6,9,13,16,19,28,40,100}; int copy[]= new int [11]; Scanner in =new Scanner(System.in); System.out.println("请输入要插入的数字:"); int number = in.nextInt() ; System.out.println("原始数据是:"); for (int i = 0; i < copy.length-1; i++) { copy[i] = arr[i]; System.out.print(copy[i]+"\t"); } System.out.println(); System.out.println("插入数据是:"); printInsert(copy,number); } /** * 用于插入数据的方法: * */ private static void printInsert(int [] copy,int number){ int end =copy[9]; int temp1; int temp2; if(number>=copy[9]){ copy[10]=number; }else{ for (int i = 0; i <copy.length; i++) { if(copy[i]>number){ temp1= copy[i]; copy[i]=number; for(int j=i+1;j<11;j++) { temp2=copy[j]; copy[j]=temp1; temp1=temp2; } break; } } for (int j2 = 0; j2 < copy.length; j2++) { System.out.print(copy[j2]+"\t"); } } } }