作者: 孙辞海 时间限制: 1S章节: 一维数组
问题描述 :
斐波拉切数列a1, a2, ..., an的定义如下: a1 = 1; a2 = 1; an = an-1 + an-2; (n > 2) 求出第n项an的值。
输入说明 :
你的程序需要从标准输入设备(通常为键盘)中读入多组测试数据。每组输入数据由一行组成,其中只有一个正整数n(0 < n ≤ 20)。两组输入数据间无空行。
输出说明 :
对每组测试数据,你的程序需要向标准输出设备(通常为启动该程序的文本终端)输出一行,其中只有一个整数,也就是an的值(我们保证它小于231),所有数据前后没有多余的空格或空行,两组数据之间也没有多余的空行。
输入范例 :
1
2
3
20
输出范例 :
1
1
2
6765
代码:
#include <stdio.h>
int fun(int n)
{
if (n == 1 || n == 2)
{
return 1;
}
else
{
return fun(n - 1) + fun(n - 2);
}
}
int main()
{
int n, sum;
while (scanf("%d", &n) != EOF)
{
sum = fun(n);
printf("%d\n", sum);
sum = 0;
}
return 0;
}
原文:https://www.cnblogs.com/VictorierJwr/p/12487504.html