题目:

找出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;
}

运行结果:

C语言解题 || 斐波那契数列_初始化