递归调用函数:
#define _CRT_SECURE_NO_WARNINGS
int fun(int n);
#include<stdio.h>
int main()
{//斐波那契数列递归求法
int a[100] = { 0,1,1 };
int n, i, sum = 0;
scanf("%d", &n);
for (i = 1; i <=n; i++)
{
sum += fun(i);
}
printf("%d\n", sum);
}
int fun(int n)
{
if (n == 1 || n == 2)
return 1;
else
return fun(n - 1) + fun(n - 2);//等于前两项之和;
return 0;
}
用数列的的方法求解:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
//数列求
int a[100] = { 0,1,1 };
int n, i, sum = 0;
scanf("%d", &n);
for (i = 3; i <=n; i++)
{
a[i] = a[i - 1] + a[i - 2];
}
for (i = 0; i <=n; i++)
{
sum += a[i];
}
printf("%d\n", sum);
}