《JAVA编程题目(含解答)new》由会员分享,可在线阅读,更多相关《JAVA编程题目(含解答)new(58页珍藏版)》请在金锄头文库上搜索。
1、【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21. import java.util.Scanner;public class RabbitsQuit /* * 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月 起每个月都生一对兔子,小兔子长到第三个月后每个月又生 一 * 对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21. */public
2、 static void main(String args) / TODO Auto-generated method stubScanner sc = new Scanner(System.in);RabbitsQuit rq = new RabbitsQuit();System.out.println(请输入一个整数:);int n = sc.nextInt();for (int i = 0; i n; i+) System.out.println(第 + (i + 1) + 个月: + rq.calc(i + 1);private int calc(int x) if (x = 1 |
3、x = 2)return 1;elsereturn calc(x - 2) + calc(x - 1);【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 import java.util.Scanner;public class RabbitsQuit /* * 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月 起每个月都生一对兔子,小兔子长到第三个月后每个月又生 一 * 对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的
4、规律为数列1,1,2,3,5,8,13,21. */public static void main(String args) / TODO Auto-generated method stubScanner sc = new Scanner(System.in);RabbitsQuit rq = new RabbitsQuit();System.out.println(请输入一个整数:);int n = sc.nextInt();for (int i = 0; i n; i+) System.out.println(第 + (i + 1) + 个月: + rq.calc(i + 1);priv
5、ate int calc(int x) if (x = 1 | x = 2)return 1;elsereturn calc(x - 2) + calc(x - 1);法二:import java.util.Vector;public class PrimeNumber2 /* * 【程序2】 题目:判断101-200之间有多少个素数,并输出所有 素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt * (这个数),如果能被整除, 则表明此数不是素数,反之是素数。 */SuppressWarnings( unchecked, rawtypes )public static voi
6、d main(String args) / TODO Auto-generated method stubVector v = new Vector();/ 使用向量来装素数int i, j, ct = 0;for (i = 101; i 200; i+) for (j = 2; j i; j+) if (i % j = 0) break;if (i = j) v.add(i);ct+;System.out.println(101200之间一共有: + ct + 个素数。);System.out.println(=);System.out.println(v.toString().substr
7、ing(1,v.toString().length()-1);【程序3】 题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个水仙花数,因为153=1的三次方5的三次方3的三次方。 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 public class DaffodilsNumber /* * 【程序3】 题目:打印出所有的水仙花数,所谓水仙花数是指 一个三位数,其各位数字立方和等于该数本身。例如: * 153是一个水仙花数,因为153=1的三次方5的三次方 3的三次方。 1.程序分析: * 利用for循
8、环控制100-999个数,每个数分解出个位, 十位,百位。 */public static void main(String args) / TODO Auto-generated method stubDaffodilNumber dn;int ct = 0;for (int i = 100; i 1000; i+) dn = new DaffodilNumber(i);/System.out.println(dn);if (dn.isDaffodilNumber() ct+;System.out.println(i + = + dn);System.out.println(=);Syste
9、m.out.println(100999之间一共有: + ct + 个水仙花数。);class DaffodilNumber private int bw;private int sw;private int gw;private int num;public DaffodilNumber(int num) this.num = num;this.bw = num / 100;this.sw = (num-bw*100)/10;this.gw = num % 10;public boolean isDaffodilNumber() if (num = bw * bw * bw + sw * s
10、w * sw + gw * gw * gw)return true;elsereturn false;public String toString() return bw + * + bw + * + bw + + + sw + * + sw + * + sw + + gw + * + gw + * + gw;【程序4】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果nk,但n能被k整除,则应打印出k的值
11、,并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 import java.util.Scanner;public class PrimeSplit /* * 【程序4】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 * 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: * (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 * (2)如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 * (3)
12、如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 */public static void main(String args) / TODO Auto-generated method stubScanner sc = new Scanner(System.in);int n;while (true) System.out.println(请输入一个大于1的整数:);n = sc.nextInt();if (n 1)break;System.out.print(n + = );int i = 2;String str = ;while (i = n) if (n % i = 0 &
13、isPrime(i) str += * + i;n /= i;i = 2;continue;i+;System.out.println(str.substring(1);private static boolean isPrime(int n) for (int i = 2; i =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 1.程序分析:(ab)?a:b这是条件运算符的基本例子。 import java.util.Scanner;public class PerformanceRating /* * 【程序5】 题目:利用条件运算符的嵌套来完成此题:学习成绩=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示