标签:
Fibonacci数列小程序
问题分析:Fibonacci数列特征是前两项数均为1,从第三项起,前两项的和为第三项的数的数值用公式归纳起来为:f1=f2=1、f1=f1+f2、f2=f1+f2。
程序源代码:
#include<stdio.h>
#include<stdlib.h>
main()
{
int m,n,i,j=1;
long f1,f2;
printf("\t\t\t Fibonacci数列测试小程序\n\n"); /***可省略***/
printf("请输入测试数据组数\n"); /***可省略***/
scanf("%d",&n);
while(n--)
{
if(n+1)
{
printf("\n第%d组测试\n\n",j);
j++;
}
printf("请输入需要输出数的序号:\n");/***可省略***/
scanf("%d",&m);
f1=f2=1;
for(i=2;i<m;)
{
f1=f1+f2;
i++;
if(i==m) break;
f2=f1+f2;
i++;
if(i==m) break;
}
if(i%2==1)
printf("第%d个数为%d\n",m,f1);
else
printf("第%d个数为%d\n",m,f2);
system("pause");
system("CLS");
printf("\t\t\t Fibonacci数列测试小程序\n\n");/***可省略***/
}
}
程序分析: while 循环表示的是测试数据的组数,程序最主要的部分是对公式:f1=f2=1、f1=f1+f2、f2=f1+f2的运用。由于所指定的数的序号不确定,所以每得出一项数就需要判断一下该项数的序号。又须知道所给序号是奇是偶,然后是奇数输出f1,是偶数输出f2。当然,也可以将f1,f2均赋值给同一个变量,然后再输出这个变量,就不需要再判断了。
标签:
原文地址:http://www.cnblogs.com/hechuxunni/p/5167717.html