本次设计的知识点:顺序控制语句、条件分支语句、循环控制语句、数组、方法。
1、编写程序,接受用户输入的1~12之间的整数(如果用户输入的数据不满足这个条件,则要求用户重新输入),利用switch语句输出对应月份对应的英文单词。
2、编写程序,输出百位数以内的所有”水仙花数”,所谓”水仙花数”是指一个3位数,其各为数字的立方和等于该数本身。例如 153 = (1* 1 * 1)+(5* 5* 5)+(3* 3 * 3)。
3、编写程序,输出10~100之间的素数。
4、编写程序,输出1~10的阶乘相加的数。
5、编写程序,输出9*9乘法表。
6、歌唱比赛中有10个评委打分,要求去掉一个最高分和一个最低分,求给选手打了多少分?
题目一
题目一基本没什么难度,使用swich语句就可以写出来了,这边只要注意的是如何接受用户输入的数,从键盘输入一般使用Scanner语句进行实现,并通过improt导入Scanner语句所需要的模块。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| package practice3;
import java.util.Scanner;
public class homework { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int month = sc.nextInt(); switch (month) { case 1 : System.out.println("January");break; case 2 : System.out.println("February");break; case 3 : System.out.println("March");break; case 4 : System.out.println("April");break; case 5 : System.out.println("May");break; case 6 : System.out.println("June");break; case 7 : System.out.println("July");break; case 8 : System.out.println("August");break; case 9 : System.out.println("September");break; case 10 : System.out.println("October");break; case 11 : System.out.println("November");break; case 12 : System.out.println("December");break; default : System.out.println("您输入的数字不符合条件,请重新输入!!"); } } }
|
题目二
这道题的思路就是通过for循环遍历所有百位数,在通过除法取余的方法,得到个位数、十分位数和百分位数,最后在通过简单的公式进行判断,然后输出。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| package practice3;
public class homework2 { public static void main(String[] args) { int a; for (a = 100; a <= 999; a++) { int b = a % 10; int c = a / 10 % 10; int d = a / 100 % 10; if (a == (b*b*b) + (c*c*c) + (d*d*d)) { System.out.println(a); } } } }
|
题目三
求素数没什么好说的,只要知道素数是什么就好。素数是指在大于1的自然数中,除了1和它本身以外,不能被其他自然数整除的数
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| package practice3;
public class homework3 { public static void main(String[] args) { for (int i = 10; i <= 100; i++) { boolean f = true; for (int j = 2; j < i -1 ; j++) { if (i % j == 0) { f = false; break; } } if (f) { System.out.println(i); } } } }
|
不过这里我使用的是通过布尔类型的语句和break语句进行实现素数输出的方法。
题目四
通过数值的阶乘实现数值的总和的判断,这个题目我使用的是复合运算符来进行实现,通过它本身来进行相乘的同时进行加减的操作。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| package practice3;
public class homework4 { public static void main(String[] args) { int sum =0; for (int i =1; i <=10; i++) { int point =1; for (int j =1; j <= i; j++) { point = point * j; } sum += point; } System.out.println(sum); } }
|
题目五
九九乘法表也比较简单,需要注意的是不要搞错外层循环和内层循环就行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| package practice3;
public class homework5 { public static void main(String[] args) { for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { int num = i * j; System.out.print(i + "*" + j + "=" + num + " "); } System.out.println(); } } }
|
题目六
这道有点复杂,但是也不是很难,我是使用方法来进行实现最高分和最低分的判断,也用方法来对除最高分和最低分的数值进行整合,最后得出选手分数的总和。
需要注意的是这道使用数组去解决会方便很多,而最后得分需要对总和的分数去减去最高和最低分,最后得到结果。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| package practice3;
import java.util.Arrays; import java.util.Scanner;
public class homework6 { public static void main(String[] args) { int []a = new int[10]; for (int i = 0; i < 10; i++) { Scanner num = new Scanner(System.in); a[i] = num.nextInt(); } System.out.println(Arrays.toString(a)); int max = Max(a); int min = Min(a); int sum = Sum(a); System.out.println(sum-(max+min)); } public static int Max(int []a) { int max = a[0]; for (int i = 1; i < 10; i++) { if (max < a[i]) { max = a[i]; } } return max; } public static int Min(int []a) { int min = a[0]; for (int i = 1; i < 10; i++) { if (min > a[i]) { min = a[i]; } } return min; } public static int Sum(int []a) { int sum = a[0]; for (int i = 1; i < 10; i++) { sum += a[i]; } return sum; } }
|