问题链接:CCF NOI100002 取数游戏。
时间限制:
1000 ms 空间限制: 262144 KB
题目描述
我们来玩一个游戏:自然数1到N,按顺序列成一排,你可以从中取走任意个数,但是相邻的两个不可以同时被取走。如果你能算出一共有多少种取法,那么你会被天神Lijiganjun奖励。
输入
仅包含一个数n(1< n < 50)。
输出
仅包含一个数———你的答案。样例输入
5
样例输出
13
数据范围限制
问题分析
可以找出递推关系,就是斐波那契数列。
程序说明
(略)
要点详解
- 能用递推不用递归。
参考链接:(略)。
100分通过的C语言程序:
#include <stdio.h> typedef unsigned long long ULL; ULL fib(int n) { ULL f1=1, f2=1, temp; int i; if(n == 1 || n == 2) return 1; for(i=3; i<=n; i++) { temp = f1 + f2; f1 = f2; f2 = temp; } return f2; } int main(void) { int n; scanf("%d", &n); printf("%lld ", fib(n + 2)); return 0; }