题解 | #统计每个月兔子的总数#

统计每个月兔子的总数

http://www.nowcoder.com/practice/1221ec77125d4370833fd3ad5ba72395

题解

本题考查的是 斐波那契数列 知识。以下引入百度解释:

斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2) n ≥ 2,n ∈ N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从 1963 年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

注意文中标红的部分,大白话 f(n) = f(n-1) + f(n-2)。 比如 n=8,那么 8(n) = 5(n-1) + 3(n-2)

代码

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int n = sc.nextInt();
            int[] arr = new int[n];
            arr[0] = 1;
            arr[1] = 1;
            for (int i = 2; i < n; i++) {
                // f(n) = f(n-1) + f(n-2)
                arr[i] = arr[i - 1] + arr[i - 2];
            }
            // 打印第n的值相当于打印下标为n-1的值
            System.out.println(arr[n - 1]);
        }
    }
}
全部评论
n=1就错了
点赞 回复 分享
发布于 2022-05-14 14:33

相关推荐

小红书 后端选手 n*16*1.18+签字费期权
点赞 评论 收藏
分享
喜欢走神的孤勇者练习时长两年半:爱华,信华,等华,黑华
点赞 评论 收藏
分享
拉丁是我干掉的:把上海理工大学改成北京理工大学。成功率增加200%
点赞 评论 收藏
分享
9 3 评论
分享
牛客网
牛客企业服务