Java编程题集:斐波那契数列、素数判定与水仙花数探索

版权申诉
0 下载量 170 浏览量 更新于2024-06-25 收藏 100KB DOC 举报
本资源是一份针对自学考试计算机科学与技术专业《Java语言程序设计(一)》课程编写的编程题集,共包含五个实用且具有代表性的Java程序示例。这些题目涵盖了基础的数据结构和算法应用,旨在帮助学习者巩固和提升Java编程技能。 程序1:题目涉及著名的斐波那契数列问题。在Java代码中,通过创建一个名为`lianxi01`的类,程序模拟了兔子繁殖的过程,从第三个月开始每月新增一对兔子,通过循环计算并输出每个月的兔子总数。这是一个递归或动态规划的应用实例,展示了如何使用循环结构实现序列的迭代计算。 程序2:这个题目要求判断101至200之间的素数,并输出它们。`lianxi02`类的`main`方法使用了素数判定的基本算法,即检查每个数是否能被2到其平方根之间的整数整除。这种方法是检验素数的常用技巧,它强调了循环控制和条件判断的重要性。 程序3:涉及到“水仙花数”的计算,这是一种特殊的三位数,其各位数字立方之和等于该数本身。`lianxi03`类实现了这个逻辑,通过遍历101到999范围内的所有三位数,验证是否满足条件,并打印出符合条件的“水仙花数”。 程序4:程序4要求将一个正整数分解质因数。`lianxi04`类通过循环和条件判断,逐步找出输入数字的最小质因数并分解,这展示了分解质因数的常用算法,即试除法。 程序5:最后一个程序展示了Java中条件运算符(三元运算符)的应用,根据输入的成绩范围,使用嵌套的条件判断语句给出相应的等级标识,如'A'、'B'或'C'。 这些程序不仅涵盖了Java的基本语法,还涉及到数据结构(如数组和循环)、算法(如素数检测、斐波那契数列、质因数分解)以及条件表达式的运用,对于理解和掌握Java编程的实战技巧非常有帮助。通过解决这些题目,学习者可以提升逻辑思维能力和解决问题的能力。
150 浏览量
【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第 三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? //这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数: 1"); System.out.println("第2个月的兔子对数: 1"); int f1 = 1, f2 = 1, f, M=24; for(int i=3; i<=M; i++) { f = f2; f2 = f1 + f2; f1 = f; System.out.println("第" + i +"个月的兔子对数: "+f2); } } } 【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 public class lianxi02 { public static void main(String[] args) { int count = 0; for(int i=101; i<200; i+=2) { boolean b = false; for(int j=2; j<=Math.sqrt(i); j++) { if(i % j == 0) { b = false; break; } else { b = true; } } if(b == true) {count ++;System.out.println(i );} } System.out.println( "素数个数是: " + count); } } 【程序3】 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。 public class lianxi03 { public static void main(String[] args) { int b1, b2, b3; for(int m=101; m<1000; m++) { b3 = m / 100; b2 = m % 100 / 10; b1 = m % 10; if((b3*b3*b3 + b2*b2*b2 + b1*b1*b1) == m) { System.out.println(m+"是一个水仙花数"); } } } } 【程序4】 题目:将一个正整数分解质因数。例如:输入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的值,重复执行第一步。 import java.util.*; public class lianxi04{ public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.print( "请键入一个正整数: "); int n = s.nextInt(); int k=2; System.out.print(n + "=" ); while(k <= n) { if(k == n) {System.out.println(n);break;} else if( n % k == 0) {System.out.print(k + "*");n = n / k; } else k++; } } } 【程序5】 题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60- 89分之间的用B表示,60分以下的用C表示。 import java.util.*; public class lianxi05 { public static void main(String[] args) { int x; char grade; Scanner s = new Scanner(System.in); System.out.print( "请输入一个成绩: "); x = s.nextInt(); grade = x >= 90 ? 'A' : x >= 60 ? 'B' :'C'; System.out.prin