WEN 發問時間: 電腦與網際網路程式設計 · 2 0 年前

幫我看一下遞迴哪裡有錯

#include<iostream.h>

int f (int n)

{

int ans;

if (n==1||n==0)

ans=n;

else

ans=2*f(n-1) 3*f(n-2);

return ans;

}

int main ()

{

int n,ans;

cout<<"Input Number"<<endl;

cin>>n;

f(n);

cout<<""<<ans<<endl;

system("PAUSE");

return 0;

}

已更新項目:

題目是 F(0)=0 ;F(1)=1

Fn=2*F(n-1)+3*F(n-2)

2 個解答

評分
  • Mark
    Lv 5
    2 0 年前
    最佳解答

    在f函式中

    ans=2*f(n-1) 3*f(n-2); 少寫一個+

    ==> ans=2*f(n-1) + 3*f(n-2);

    在main中, 要寫 ans = f(n)

    要不然ans根本沒被設定任何值

  • 2 0 年前

    將main內容改成以下就可以了

    int main ()

    {

    int n;

    cout<<"Input Number"<<endl;

    cin>>n;

    cout<<""<<f(n)<<endl; //直接將回傳值輸出即可

    system("PAUSE");

    return 0;

    }

還有問題?馬上發問,尋求解答。