C语言 关于 斐波那契Fibonacci数列 的问题 源代码如下: 255
#include<stdio.h>#include<math.h>doublef(intn)//求斐波那契(Fibonacci)数列的第n项{doublefn;fn=1/...
#include <stdio.h>
#include <math.h>
double f(int n) //求斐波那契(Fibonacci)数列的第n项
{
double fn;
fn = 1 / sqrt(5.0) * (pow ((1 + sqrt(5)) / 2, n) - pow ((1 - sqrt(5)) / 2, n));//斐波那契(Fibonacci)数列通项
return fn;
}
int count(double x) //求x前面的斐波那契 数的个数(不包括x)
{
int i;
for (i = 1; ; i++)
{
if (f(i) >= x)
return (i - 1);
}
}
int countt(double x) //求x前面的斐波那契 数的个数(包括x)
{
int i;
for (i = 1; ; i++)
{
if (f(i)>=x)
{
if(f(i)>x) return i-1;
else return i;
}
}
}
int main()
{
printf("%d %d",count(13),countt(13));
}
运行结果是 6 6
不过不应该是 6 7 吗? 展开
#include <math.h>
double f(int n) //求斐波那契(Fibonacci)数列的第n项
{
double fn;
fn = 1 / sqrt(5.0) * (pow ((1 + sqrt(5)) / 2, n) - pow ((1 - sqrt(5)) / 2, n));//斐波那契(Fibonacci)数列通项
return fn;
}
int count(double x) //求x前面的斐波那契 数的个数(不包括x)
{
int i;
for (i = 1; ; i++)
{
if (f(i) >= x)
return (i - 1);
}
}
int countt(double x) //求x前面的斐波那契 数的个数(包括x)
{
int i;
for (i = 1; ; i++)
{
if (f(i)>=x)
{
if(f(i)>x) return i-1;
else return i;
}
}
}
int main()
{
printf("%d %d",count(13),countt(13));
}
运行结果是 6 6
不过不应该是 6 7 吗? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询