YTU OJ 3094: 善良的小乌龟

本文介绍了一个关于乌龟收养的模拟问题,通过一个特定的收养规则,使用Java编程解决了一个数学序列问题,即计算N年后乌龟的总数。

Description

有一天,烟台大学来了一只心地善良又善于感化其他龟的小乌龟,为什么这么说呢,我们从一件事上就可以看出来:他喜欢收养无家可归的小乌龟,并且教导他们。他收养的小乌龟在他的教导下都和他一样心地善良又善于感化其他小乌龟。但是这只小乌龟有个规矩:只有在一个地方生活三年后才会收留其他小乌龟,并且以后每年收养一只。细心的他当然会把这个规矩教给他收养的小乌龟。(这么怪的规矩,看来乌龟的世界很复杂啊)那么问题来了,聪明的你知道N年后小乌龟家一共有多少只乌龟吗?快帮他算算吧。

 

Input

输入多组数据,N表示第几年(0<N<=20),当N=0是程序停止。

 

Output

输出N年后乌龟的总数

 

Sample Input

6
10
0

Sample Output

8
55

解析:题目中的描述不还很准确,应该是第三年就可以收养小乌龟,这样题目中的数据就变成了:

年数123456789
乌龟个数112358132134

典型的斐波那契数列。

AC代码:

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();
			if (n ==0)
				break;
			long f[] = new long[n + 2];
			f[0] = 1;
			f[1] = 1;
			if (n > 2)
				for (int i = 2; i < n; i++)
					f[i] = f[i - 1] + f[i - 2];
			System.out.println(f[n - 1]);
		}
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值