编辑代码

#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;
}