我已經在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'四次。它可以工作,但它可能會更有效率。 –