求斐波拉切数列
作者: XXX 时间限制: 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 main(){
int n;
while(scanf("%d",&n)!=EOF){
int num1 = 1;
int num2 = 1;
int tmp = 0;
int i = 0;
if (n < 3)
tmp=1;
else{
for(i = 0; i<=n-3; i++){
tmp = num1 + num2;
num1 = num2;
num2 = tmp;
}
}
printf("%d\n",tmp);
}
return 0;
}