当前位置: 首页 > news >正文

Java程序之可爱的小兔兔

题目:

        古典问题,有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

程序分析:

        兔子的规律为数列1,1,2,3,5,8,13,21....,即斐波那契数列。斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:

        F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)

算法思路:

        这是一个经典的斐波那契数列问题,要求计算兔子的总数。

        1. 首先,通过Scanner类获取用户输入的整数n,表示要计算前n个月的兔子总数。

        2. 然后,使用for循环遍历从1到n的每一个月份。

        3. 在每个月份中,调用Fib函数来计算当前月份的兔子总数。

        4. Fib函数采用递归的方式实现,当月份小于等于2时,返回1;否则,返回前两个月的兔子总数之和。

        5. 最后,输出每个月的兔子总数。

注意:代码中还提供了一个使用数组实现的Fib函数,但被注释掉了。这个函数的思路是创建一个长度为102400的数组,用于存储斐波那契数列的前102400项。然后,通过循环计算第n项的值,并返回结果。这种方法的时间复杂度为O(n),空间复杂度为O(1)。

源代码:
package Question2;import java.util.Scanner;public class Tutu {public static void main(String[] args) {Scanner scanner=new Scanner(System.in);System.out.print("请输入:");int n=scanner.nextInt();for(int i=1;i<=n;i++){System.out.println("第"+i+"个月兔子总数为:"+Fib(i)+"(对)");}}//递归public static int Fib(int n){if(n<=2){return 1;}else{return Fib(n-1)+Fib(n-2);}}//数组
//    public static int Fib(int n)
//    {
//        int[] arry=new int[102400];
//        arry[1]=1;
//        arry[2]=1;
//        if(n<2)
//        {
//            return arry[1];
//        }
//        else
//        {
//            for (int i = 3; i <= n; i++) {
//                arry[i] = arry[i - 1] + arry[i - 2];
//            }
//            return arry[n];
//        }
//    }}
运行结果:

http://www.lryc.cn/news/380925.html

相关文章:

  • ▶《强化学习的数学原理》(2024春)_西湖大学赵世钰 Ch5 蒙特卡洛方法【model-based ——> model-free】
  • 【linux】Valgrind工具集详解(十六):交叉编译、移植到arm(失败)
  • 前端面试题(七)答案版
  • 为微信小程序项目添加eslint
  • Win10用户必看:最好用最稳定的版本在此,值得一试!
  • 处理文本内容的命令和正则表达式
  • AI与音乐:当技术与艺术发生冲突
  • java泛型学习
  • vscode c++ 开发环境配置
  • PHP安装配置
  • std::vector<>的{}用法与stl中的共享指针
  • 《FFmpeg开发实战:从零基础到短视频上线》资源下载和内容勘误
  • OpenCV目标识别
  • 密码学及其应用——为什么选择接近的质数因子对RSA加密算法不安全?
  • 爱心商城管理系统的设计
  • 【python】linux下安装chromedriver
  • Day18—使用Scrapy框架快速开发爬虫
  • 04--MySQL8.0_JDBC
  • OPENCV中0x00007FFE5F35F39C发生异常
  • Python 设计模式(第2版) -- 第三部分(行为型模式)
  • EXCEL数据导入HIVE
  • C语言常用标准头文件
  • vuejs3用gsap实现动画
  • 企业级-PDF文件下载
  • 00 - React 基础
  • 基于WPF技术的换热站智能监控系统17--项目总结
  • CI /CD学习
  • 基于matlab的高斯滤波与图像去噪
  • 解决 uniapp h5 页面在私有企微iOS平台 间歇性调用uni api不成功问题(uni.previewImage为例)。
  • Jenkins nginx自动化构建前端vue项目