C primer plus 第六版 第九章 第十一题 编程练习答案

版权声明:转载请注明来源~ https://blog.csdn.net/Lth_1571138383/article/details/80536290
/*
    本程序应 习题-11 建立。
题目要求: 编写并测试 Fibonacci() 函数, 该函数用循环代替递归计算斐波那契数。
*/
#include<stdio.h>

#define true 1

void Fibonacci(void);

int main(void)
{
// 懒得写太多了。直接在子函数用循环代替递归,来写 斐波那契数。

Fibonacci();

getchar();

printf("Bye !\n");

return 0;
}

void Fibonacci(void)
{
// 斐波那契数列以如下被以递归的方法定义:
// F(0) = 0,F(1) = 1, F(n) = F(n - 1) + F(n - 2)(n >= 2,n∈N*)
// !! 注 : n 为第 n 项, n - 1 为上一项。


int i = 0;     // 循环用。

int F[50] = { 0 };   // 存斐波那契数列储

for ( i = 0; i < 30; i++)
{
if (i == 0)
{
F[0] = 0;
printf("第%d次 %d     ",i,F[i]);
}
else if (i == 1)
{
F[1] = 1;
printf("第%d次 %d     ", i,F[i]);
}
else
{
F[i] = F[i - 1] + F[i - 2];
printf("第%d次 %d     ", i,F[i]);
}
}

// 之所以用 return; 是因为 void 类函数每次return 0 都警告默认 int 型返回值。
return;
}

猜你喜欢

转载自blog.csdn.net/Lth_1571138383/article/details/80536290