import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input=new Scanner(System.in); int a=input.nextInt(); int b=input.nextInt(); int sum ; sum =a+b; System.out.print(sum); } }
第一题计算两数之和,用到了有关JAVA的输入与输出语句,是一道相对基础的题目,通过这个题更好的是对于我们从c语言到JAVA语言的一个过渡,简单的输入与输出,以及怎样定义一个变量,习题一的题目较为简单
1 import java.util.Scanner; 2 public class Main { 3 public static void main(String[] args) { 4 5 Scanner input =new Scanner(System.in); 6 String string=input.nextLine(); 7 char zm=string.charAt(0); 8 switch(zm) { 9 10 case‘a‘: 11 case‘b‘: 12 case‘c‘: 13 case‘A‘: 14 case‘B‘: 15 case‘C‘: 16 System.out.println("2"); 17 break; 18 case‘d‘: 19 case‘e‘: 20 case‘f‘: 21 case‘D‘: 22 case‘E‘: 23 case‘F‘: 24 System.out.println("3"); 25 break; 26 case‘g‘: 27 case‘h‘: 28 case‘i‘: 29 case‘G‘: 30 case‘H‘: 31 case‘I‘: 32 System.out.println("4"); 33 break; 34 case‘j‘: 35 case‘k‘: 36 case‘l‘: 37 case‘J‘: 38 case‘K‘: 39 case‘L‘: 40 System.out.println("5"); 41 break; 42 case‘m‘: 43 case‘n‘: 44 case‘o‘: 45 case‘M‘: 46 case‘N‘: 47 case‘O‘: 48 System.out.println("6"); 49 break; 50 case‘p‘: 51 case‘q‘: 52 case‘r‘: 53 case‘s‘: 54 case‘P‘: 55 case‘Q‘: 56 case‘S‘: 57 case‘R‘: 58 System.out.println("7"); 59 break; 60 case‘t‘: 61 case‘u‘: 62 case‘v‘: 63 case‘T‘: 64 case‘U‘: 65 case‘V‘: 66 System.out.println("8"); 67 break; 68 case‘w‘: 69 case‘x‘: 70 case‘y‘: 71 case‘z‘: 72 case‘W‘: 73 case‘X‘: 74 case‘Y‘: 75 case‘Z‘: 76 System.out.println("9"); 77 break; 78 default: 79 System.out.println(zm+" is an invalid input"); 80 81 } 82 83 } 84 85 }
第二题运用了JAVA中的switch语句进行电话号码间数字的转化,与C语言的switch语句的用法没有较大的区别,题目二也相对见到那。
1 import java.util.Scanner; 2 3 public class Main { 4 public static void main(String[] args) { 5 Scanner input=new Scanner(System.in); 6 int score=input.nextInt(); 7 if (score>=90) 8 System.out.println("A"); 9 else if(score>=80) 10 System.out.println("B"); 11 else if(score>=70) 12 System.out.println("C"); 13 else if(score>=60) 14 System.out.println("D"); 15 else 16 System.out.println ("E"); 17 } 18 }
第三题 有关于 if 以及 if else 的嵌套使用来判断学生的成绩类型,在之后老师讲解到,有关程序的圈复杂度时,我也知道了,if语句越多的代码圈复杂度越高,在做这个题时我仍然想到的是在C语言中学到的东西,这就导致了if语句较多,只达到了解题的目的,在今后的编程学习中,我要做到的是有关于代码的优化,和减少他们的圈复杂度。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int type = input.nextInt(); float money=input.nextFloat(); float money2 ; if(money>=0) { if(type==0) { if(money<8350) money2=(float) (money*0.1); else if(money<=33950) money2=(float) ((money-8350)*0.15+835); else if(money<=82250) money2=(float) ((money-33950)*0.25+4675); else if(money<=171550) money2=(float) ((money-82250)*0.28+16750); else if(money<=372950) money2=(float) ((money-171550)*0.33+41754); else money2=(float) (108216+(money-372950)*0.35); System.out.println(money2); } else if(type==1) { if(money<=16700) money2=(float) (0.1*money); else if(money<=67900) money2=(float) (1670+0.15*(money-16700)); else if(money<=137050) money2=(float) (9350+0.25*(money-67900)); else if(money<=208850) money2=(float) (0.28*(money-137050)+26637.5); else if(money<=372950) money2=(float) (0.33*(money-208850)+46741.5); else money2=(float) (0.35*(money-372950)+100894.5); System.out.println(money2); } else if(type==2) { if(money<=8350) money2=(float) (0.1*money); else if(money<=33950) money2=(float) (0.15*(money-8350)+835); else if(money<=68525) money2=(float) (0.25*(money-33950)+4675); else if(money<=104425) money2=(float) (0.28*(money-68525)+13318.75); else if(money<=186475) money2=(float) (0.33*(money-104425)+23370.75); else money2=(float) (0.35*(money-186475)+50447.25); System.out.println(money2); } else if(type==3) { if(money<=11950) money2=(float) (0.1*money); else if(money<=45500) money2=(float) (0.15*(money-11950)+1195); else if(money<=117450) money2=(float) (0.25*(money-45500)+6227.5); else if(money<=190200) money2=(float) (0.28*(money-117450)+24215); else if(money<=372950) money2=(float) (0.33*(money-190200)+44585); else money2=(float) (0.35*(money-372950)+104892.5); System.out.println(money2); } else { System.out.println("Wrong Format"); } } else System.out.println("Wrong Format"); } }
第四题仍然是对于if语句的判断,题型较为基本,更多的是编程时的耐心,才能更好的解出这个题目
1 import java.util.*; 2 public class Main{ 3 public static void main(){ 4 Scanner reader = new Scanner(System.in); 5 float x = reader.nextFloat(); 6 int a = (int)x/10; 7 int b = ((int)x%10)/5; 8 int c= ((int)x%10)-5; 9 10 float d= x%1*100; 11 int e = (int)d/50; 12 int f = ((int)d%50)/10; 13 int g = ((int)d%50)%10/2; 14 int h= 2*g%2; 15 16 System.out.println(a+ "张十元"); 17 System.out.println(b+ "张五元"); 18 System.out.println(c+ "张一元"); 19 System.out.println(e+"个五角"); 20 System.out.println(f+"个一角"); 21 System.out.println(g+"个贰分"); 22 System.out.println(h+"个壹分"); 23 } 24 }
第五题是考察我们对于JAVA语言的简单运算符号,很像C语言的大马与小马分配的遍历问题,没有什么难度,题型较为基本,所有测试点全部通过
1 import java.util.Scanner; 2 public class Main { 3 public static void main(String[] args) { 4 Scanner input = new Scanner(System.in); 5 int num = input.nextInt(); 6 int a[]=new int [num]; 7 for (int i = 0; i < num; i++) { 8 a[i]= input.nextInt(); 9 } 10 for (int i = 0; i < num; i++) { 11 for (int j = 0; j < num-1-i; j++) { 12 if(a[j]>a[j+1]){ 13 int temp = a[j]; 14 a[j] = a[j+1]; 15 a[j+1] = temp; 16 } 17 } 18 } 19 System.out.print("The sorted numbers are:"); //不换行 20 for(int i=0;i<a.length;i++){ 21 22 System.out.print(a[i]+" "); 23 } 24 25 } 26 }
第六题,考察了JAVA中的数组的定义,同时也考察了一个算法,选择排序,将一个一维数组进行排序后输出,本题的测试点格式要进行格式化输出,排序的选择排序我们在C语言中已经学会,这个题的测试点全部通过
1 import java.util.Arrays; 2 import java.util.Scanner; 3 4 public class Main { 5 6 public static void main(String[] args) { 7 Scanner in=new Scanner(System.in); 8 double num[] = new double[3]; 9 int i=0; 10 for(i = 0; i < 3; i++){ 11 num[i] = in.nextDouble(); 12 } 13 for(i = 0; i < 3; i++){ 14 if(num[i] < 1 || num[i] > 200){ 15 System.out.println("Wrong Format"); 16 return; 17 } 18 } 19 Arrays.sort(num); 20 if(num[0] + num[1] > num[2]){ 21 if(num[0] == num[1] && num[1] == num[2]){ 22 System.out.println("Equilateral triangle"); 23 } 24 else if(num[0] == num[1] && num[0] * num[0] + num[1] * num[1] - num[2] * num[2] < 0.0000000001) 25 System.out.println("Isosceles right-angled triangle"); 26 else if(num[2] == num[1] || num[2] == num[0] || num[0] == num[1]){ 27 28 29 System.out.println("Isosceles triangle"); 30 } 31 else if(num[0] * num[0] + num[1] * num[1] - num[2] * num[2] < 0.0000010){ 32 33 34 System.out.println("Right-angled triangle"); 35 } 36 else{ 37 38 39 40 System.out.println("General triangle"); 41 } 42 43 } 44 else 45 System.out.println("Not a triangle"); 46 } 47 48 }
最后一题在做的时候,有一些测试点没有过去:
原因有如下;
最后写这个题目的心得:
习题集一的题目相对简单,更多的是考察我们对Java基本语法知识的掌握,让我们从C语言的编程思维转化到Java的编程思维,通过本次的作业,掌握了Java基本的输入与输出,Java的一位数组的定义,遍历,以及对于选择排序对于一维数组的处理,if 以及 else if 语句的嵌套使用,第一次的题目集很好的让我们走进了Java编程学习的第一步,夯实了我的基础语法知识,只有掌握好这些基本的语法知识,才能在今后的学习中做出更难得题目。
原文:https://www.cnblogs.com/lyhzml/p/14613691.html