#include <stdio.h>
int Fib(int n);
int FibSum(int n);
int main()
{
int n;
while(1)
{
printf("请问您需要求前几项呢?");
scanf("%d", &n);
printf("斐波那契数列第%d项为:%d\n", n, Fib(n));
printf("前%d项斐波那契数列之和:%d\n", n, FibSum(n));
}
}
//**************Fibonacci数:1 1 2 3 5 8 13 21 34*************//
int Fib(int n)
{
if(n == 0)
return 0;
if(n == 1)
return 1;
int dp[n+1];
dp[0] = 0;
dp[1] = 1;
for(int i = 2; i < n+1; i++)
{
dp[i] = dp[i-1] + dp[i-2];
// dp[i] = dp[i] % 1000000007;
}
return dp[n];
}
int FibSum(int n)
{
int sum = 0;
for(int i = 0; i < n+1; i++)
{
sum += Fib(i);
}
return sum;
}