我已经在C中编写了这段代码来计算斐波那契数列的黄金比例,但程序在屏幕上什么也没有输出。我无法理解我的逻辑出了什么问题。黄金比例在C?
你能解释一下吗?
任何形式的帮助将不胜感激。
int fibonacci (int n){
if (n==0 || n==1)
return n;
else
return fibonacci(n-1)+fibonacci(n-2);
}
double fibonacci_golden_ratio(int n){
double phi;
phi = fibonacci(n)/fibonacci(n-1);
return phi;
}
int main(){
int i;
for (i=1;;i++){
printf ("F = %d ",fibonacci(i));
printf ("phi = %.5lf \n", fibonacci_golden_ratio(i));
if (fabs (fibonacci_golden_ratio(i) - fibonacci_golden_ratio(i-1)) < 0.0001)
break;
}
printf ("phi = %.5lf\n", fibonacci_golden_ratio(i));
return 0;
}
你什么意思与输出什么都没有? –
它只编译和写入F = 1 –
尝试添加一个全局'count'变量,在每次调用'fibonacci'时增加它,并打印它的最终值。我运行它时会收到11438个电话。如果你记得较低的值,斐波那契数可以非常有效地计算;您重复计算它们,然后在'fibonacci_golden_ratio'中调用'fibonnaci()'两次,然后在循环的每次迭代中调用'fibonacci_golden_ratio'四次。它可以工作,但它可能会更有效率。 –