A1044. Fibonacci数列求和
时间限制:
1.0s 内存限制:
512.0MB
问题描述
定义Fibonacci数列f(n):
f[1]=f[2]=1;
f[i]=f[i-1]+f[i-2]
输入n(n<=20),请你求出Fibonacci数列前n项的和。
f[1]=f[2]=1;
f[i]=f[i-1]+f[i-2]
输入n(n<=20),请你求出Fibonacci数列前n项的和。
输入格式
每行一组数据。每组数据仅包含一个数n。如果n=0,表示输入文件的结束。
输出格式
对于每组数据,输出相应的答案。
样例输入
1
4
0
4
0
样例输出
1
7
7
- #include <stdio.h>
- #include <stdlib.h>
- int fib(int n){
- if(n==1)
- return 1;
- if(n==2)
- return 1;
- if(n>2)
- return fib(n-1)+fib(n-2);
- }
- int main(){
- int n;
- while((scanf("%d",&n))!=EOF){
- int ans=0;
- if(n==0||n>20)
- break;
- for(int i=1;i<=n;i++){
- ans+=fib(i);
- }
- printf("%d\n",ans);
- }
- system("pause");
- return 0;
- }