0
点赞
收藏
分享

微信扫一扫

zzuli oj 1055: 兔子繁殖问题(java)

小编 2022-01-24 阅读 128
java

题目描述

这是一个有趣的古典数学问题,著名意大利数学家Fibonacci曾提出一个问题:有一对小兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。按此规律,假设没有兔子死亡,第一个月有一对刚出生的小兔子,问第n个月有多少对兔子?

输入

输入月数n(1<=n<=44)。

输出

输出第n个月有多少对兔子。

样例输入

样例输出

先调到java再提交

极优雅的数学写法(移步斐波那契数列_百度百科 (baidu.com))

import java.util.*;
public class Main{
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int n = in.nextInt();
		System.out.printf("%.0f",(1 / Math.sqrt(5)) * (Math.pow(((1 + Math.sqrt(5)) / 2),n) - Math.pow(((1 - Math.sqrt(5)) / 2),n)));
	}
}

斐波那契数列通项公式:a_n=\frac{1}{\sqrt{5}}[(\frac{1+\sqrt{5}}{2})^n-(\frac{1-\sqrt{5}}{2})^n] 

次优雅的递归写法 

import java.util.*;
public class Main{
	public static int Fibonacci(int n) {
		return (n == 1 || n == 2) ? 1 : (Fibonacci(n - 1) + Fibonacci(n - 2));
	}
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int n = in.nextInt();
		System.out.printf("%d",Fibonacci(n));
	}
}

java里函数编辑

举报

相关推荐

PTA 7-120 兔子繁殖问题

zzuli oj 1019: 公园门票(java)

zzuli oj 1052: 数列求和4(java)

zzuli oj 1025: 最大字符(java)

zzuli oj 1044: 不及格率(java)

zzuli oj 1015: 计算时间间隔

zzuli oj 1039: n个数求和

zzuli oj 1023: 大小写转换

0 条评论