Java编程基础练习:从兔子问题到水仙花数

4星 · 超过85%的资源 需积分: 10 3 下载量 81 浏览量 更新于2024-07-23 3 收藏 736KB DOC 举报
"java编程经典例题" 在Java编程中,经典例题是学习和掌握语言特性和算法的重要方式。以下两道题目展示了Java在解决实际问题时的应用,包括递归计算斐波那契数列以及通过循环和逻辑判断找出素数和水仙花数。 【程序1】 这是一个经典的斐波那契数列问题,用以模拟兔子繁殖的问题。斐波那契数列的定义是:F(1)=1, F(2)=1, F(n)=F(n-1)+F(n-2) (n>=3),其中F(n)表示第n个月的兔子对数。在Java程序中,`fun`方法使用递归方式计算第n个月的兔子总数。递归函数的基本思想是将复杂问题分解成更简单的子问题来解决,这里通过递归调用自身计算前两个月的兔子数量并相加。递归在处理这类具有重复结构的问题时非常有效,但要注意防止无限递归和性能问题。 【程序2】 该程序旨在找出101到200之间的所有素数,并统计它们的数量。素数是大于1且只有1和其本身两个正因数的自然数。这里使用了一个`for`循环遍历101到200的整数,内部嵌套另一个`for`循环用于检查每个数是否为素数。通过判断i除以j的余数是否为0,可以确定i是否能被j整除。如果找到一个因子,即余数为0,那么将`b`标志设为`false`并跳出循环,表明该数不是素数。如果`b`仍为`true`,则将该数添加到`Vector`中并增加素数计数器`x`。最后,程序输出素数的总数和所有素数。 【程序3】 水仙花数是一个三位数,其各位数字的立方和等于它本身。例如153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。为了找到所有的水仙花数,程序使用了`for`循环遍历100到999的范围。对于每个数,将其拆分成各个位上的数字,然后计算这三个数字的立方和,如果和等于原数,就找到了一个水仙花数。这种方法展示了如何在Java中处理数值运算和条件判断,同时提供了对位运算的理解。 这些经典例题涵盖了递归、循环、条件判断、数组(这里使用了`Vector`)等基本编程概念,是Java初学者巩固基础知识和提高编程能力的良好实践。通过解决这些问题,开发者可以深入理解Java语法,提升逻辑思维能力,并为解决更复杂的编程挑战打下坚实的基础。