斐波那契数列的定义
f(n)=f(n-1)+f(n-2); (n>1)
n=0; f(0)=0;
n=1; f(1)=1
自定义函数
递归写法
fbi()此函数求x项的斐波那契数
int fbi( int x)//斐波那契
{
if (x <= 0)
return 0;
else if (x == 1)
return 1;
else
return fbi(x - 1) + fbi(x - 2);
}
int sum_fbi(int x)//此函数求斐波那契数列前x项的和
int sum_fbi(int x)//求和
{
if (x <= 0)
return 0;
int s = 0;
for (int i = 0; i <= x; i++)
{
s = s + fbi(i);
}
return s;
}
非递归写法
int arr_2[20] = { 0,1 };
for (int i = 2; i < 20; i++)
{
arr_2[i] = arr_2[i - 1] + arr_2[i - 2];
}
for (int i = 0; i < 20; i++)
{
printf ( " %d ",arr_2[i] );
}
int sum = 0;
for (int i = 0; i < 20; i++)
{
sum = sum+arr_2[i];
}
printf(" sum %d", sum);
主函数
int main()
{
int x = 6;
printf("斐波那契数列前15项为:");
for (int i = 1; i <= 15; i++)
{
printf(" %d ", fbi(i));
}
printf("\n");
printf("斐波那契数列前%d项和为%d", x, sum_fbi(x));
system("pause");
return 0;
}
运行结果
数据结构练习代码如有错误欢迎指正
编译器是Microsoft Visual Studio 2019