第16节:Java练习题【多测师_王sir】
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如
兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... package com.dcs1; import sun.font.FontRunIterator; public class Exercises1 { /** * 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, * 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? * 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... */ //上个月兔子的数量 private static long n=1; //这个月兔子的数量 private static long m; //兔子总的数量 private static long a; //设定一对兔子 public static void main(String[] args) { for (int i = 3; i <50 ; i++) { a = n + m; n = m; m= a; System.out.println("第" + i +"个月的兔子对数: "+a); } } }
package com.dcs1; /** * 题目:判断101-200之间有多少个素数,并输出所有素数。 * 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, * 则表明此数不是素数,反之是素数。 */ public class Exercises2 { //定义一个a,为素数的个数 private static int a = 0; public static void main(String[] args) { //使用for循环i的数字来进行比对 for (int i = 101; i <=200; i++) { //定义一个boolean,来判断是否为素数 boolean bool = true; for (int j = 2; j < i; j++) { //通过取模来确定i是否有除1以为的质数 if (i % j == 0) { bool = false; break; } } if (!bool) { System.out.print(i+", "); a = a + 1; } } System.out.println(); System.out.println(" 素数个数: " + a); } }
package com.dcs1; public class Exercises3 { /** * 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如: * 153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 * 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 */ public static void main(String[] args) { //利用for循环控制100-999个数,每个数分解出个位,十位,百位 for (int i = 100; i <1000 ; i++) { //提取个位 int g =i%10; //提取十位 int s =i/10%10; //提取百位 int b =i/100%10; //利用if对比提取的个十百位立方进行对比 if (g*g*g+s*s*s+b*b*b==i){ System.out.println("水仙花数"+i); } } } }
package com.dcs1; import java.sql.SQLOutput; public class Exercises4 { /** * 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 * 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: * (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 * (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 * (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 */ private static int n=100; public static void main(String[] args) { System.out.print(n+"="); for (int k = 2; k <n ; k++) { while (true){ if (n%k==0){ System.out.print(k+"*"); n=n/k; }else{ break; } } } System.out.print(n); } }
题目: 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下 的用C表示。 1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 package com.dcs1; public class Exercises5 { public static void main(String[] args) { int a=30; char A='A'; char B='B'; char C='C'; char x=(a>=90?A: a>=60?B:C); System.out.println(x); } }