题目:
找出1000以内的斐波那契数列。
斐波那契数列,又称黄金分割数列 ,它是指这样一个数列:1,1,2,3,5,8,13,21,34,55,89……这个数列从第3项开始 ,每一项都等于前两项之和。
分析:
因为斐波那契数列从第3项开始,它的规律就为:n项 == (n - 1项) + (n - 2项)
所以,我们可以定义3个变量,用来存放第n项、第n - 1项、第n - 2项。
再不断相加第n - 1项、第n - 2项,来得到第n的的值。
然后在第n项小于1000时停止,即可解题。
代码实现:
#include <stdio.h>
int main()
{
//声明并初始化
int num_1 = 0;//n-2项
int num_2 = 0;//n-1项
int num_3 = 0;//n项
//给第n-1项赋值,数列从1开始
num_2 = 1;
while (num_1 + num_2 < 1000)//把数限制在1000以内
{
//斐波那契数列第1项,直接输出1
if (0 == num_1)
{
printf("%d ", 1);
}
//后一项m == 前面第1项num_2 + 前面第2项num_1
num_3 = num_1 + num_2;
printf("%d ", num_3);
//整体向后挪一项,以便计算新的数
num_1 = num_2;
num_2 = num_3;
}
return 0;
}