编程基础题-2
来源:互联网 发布:凯文淘宝店 编辑:程序博客网 时间:2024/06/14 23:14
2017/05/10
题目4:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
分析
用90从2开始除,如果能整除,则将得到的结果继续从2开始除,直到除数等于结果。
解答
public class chapter4 { public static void main(String[] args) { Scanner scn = new Scanner(System.in); int input = scn.nextInt(); decompose(input); } private static void decompose(int input){ int tem = input; System.out.print(input+"="); boolean flag =true; while(flag){ //其实这里想复杂了 for (int i = 2; i <= tem; i++) { if(tem%i ==0 && i!=tem){ tem = tem/i; System.out.print(i+"*"); break; } if(tem==i){ flag = false; System.out.println(i); } } } }}
结果:
9090=2*3*3*5
心得
注意下面的参考答案,比我的想法更加简单~
private static void decompose(int n){ System.out.print(n+"="); for(int i=2;i<n+1;i++){ while(n%i==0 && n!=i){ n/=i; System.out.print(i+"*"); } if(n==i){ System.out.println(i); break; } } }
===========================================================================
题目5:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
分析
简单
解答
public class chapter5 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Please input the grade:"); System.out.println("学习成绩为:"+getGrade(input.nextInt())); } private static char getGrade(int grade){ char level; if(grade >100 || grade < 0){ System.out.println("input error!"); level = 'E'; } else if(grade >= 90){ level = 'A'; } else if(grade >= 60){ level = 'B'; } else{ level = 'C'; } return level; }}
结果:
Please input the grade:90学习成绩为:A
心得
注意考虑多种输入情况~
参考答案
更简洁且更合理!
public class Prog5{ public static void main(String[] args){ int n = -1; try{ n = Integer.parseInt(args[0]); }catch(ArrayIndexOutOfBoundsException e){ System.out.println("请输入成绩"); return; } grade(n); } //成绩等级计算 private static void grade(int n){ if(n>100 || n<0) System.out.println("输入无效"); else{ String str = (n>=90)?"分,属于A等":((n>60)?"分,属于B等":"分,属于C等"); System.out.println(n+str); } }}
===========================================================================
题目6:输入两个正整数m和n,求其最大公约数和最小公倍数。
分析
简单
解答
public class chapter6 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Please input a number n: "); int n = input.nextInt(); System.out.print("Please input another number m: "); int m = input.nextInt(); max_yues(n,m); min_beis(n,m); } private static void min_beis(int n, int m) { int max = (n<=m?m:n); System.out.print(m+"和"+n+"的最小公倍数为:"); for(int i = max ; i <= n*m ;i++){ if(i%n == 0 && i%m == 0){ System.out.println(i); break; } } } private static void max_yues(int n, int m) { int min = (n<=m?n:m); System.out.print(m+"和"+n+"的最大公约数为:"); for (int i = min; i >= 1 ; i--) { if(n%i == 0 && m%i == 0){ System.out.println(i); break; } } }}
结果:
Please input a number n: 20Please input another number m: 5050和20的最大公约数为:1050和20的最小公倍数为:100
心得
注意别犯小错,争取一次编译通过。
0 0
- 编程基础题-2
- .NET编程语言基础题2
- Java基础编程题(2)
- 微软基础编程题
- C++编程基础题
- 编程基础题
- java基础编程题
- Java基础编程题
- 编程基础题-1
- 编程基础题-3
- 编程基础题-4
- 基础编程题-5
- [编程基础题总结]
- 网络编程基础(2)
- shell编程基础(2)
- java编程基础2
- GDI+编程基础2
- 编程基础(2)
- Kafka入门经典教程
- 查看端口占用常用的命令(记录)
- java笔记--关于线程同步(7种同步方式)
- git命令行使用
- JDK动态代理的实现及原理
- 编程基础题-2
- Spring定时任务-@EnableScheduling
- qt之图形视图框架(下)
- 虚拟机安装Ubuntu16.04后重启黑屏问题
- Totemsoft.SDK.Framework4.Files.Formatted 命名空间
- Direct3D 16边形 就是练习
- Linux音频设备驱动_ASoC驱动框架的转载链接
- Phoenix 批量增加
- 在 Mac 中安装 MySQLdb (Python mysql )