C語言示例問題,解決?!

發布 教育 2024-02-09
8個回答
  1. 匿名使用者2024-02-05

    這很好理解,我給你乙個數,取n=5,雖然編譯器有執行順序,但理論上可以認為s1和s2是同時執行的,再看比較一下。

    main 函式呼叫 fibona(5); 然後 n

    也。 =2,所以:

    s1:1 執行 s1=fibona(n-1);

    此時,n 變為 4,稱為 fibona(4);

    2》n!=1 也! =2,執行 s1=fibona(n-1);

    此時,n 變為 3,fibona(3) 稱為;

    3》n!=1 也! =2,執行 s1=fibona(n-1);

    此時,n變為2,則返回n-1=1,所以s1=1,4“繼續呼叫斐波那(n-1); 即斐波那(2);

    5》此時n變為1,稱為斐波那(1);

    返回 n-1=1,所以 s1=1,6“,因為 n 為 1 且 n-1 為 0,s1 停止呼叫斐波那(n-1);

    s2:1“ 執行 s1=斐波那(n-2);

    此時,n 變為 4,稱為 fibona(3);

    2》n!=1 也! =2,執行 s1=fibona(n-2);

    此時,n 變為 1,稱為 fibona(1);

    返回 n-1=1,所以 s2=1;

    從 n-2<0 開始,s2 停止計算。

    s2 的第二次呼叫結束,s2 1,s1 的第三次呼叫給出 s1 1,所以此時 s1 + s2 2

    對 s1 的第四次呼叫返回 1,因此 s1+s2 變為 3。

  2. 匿名使用者2024-02-04

    整個程式的結構是用函式呼叫求斐波那契函式:if(n==1||n==2)

    return(n-1);

    s1=fibona(n-1);

    s2=fibona(n-2);

    return(s1+s2);

    這意味著如果 n==1 或 n==2,則返回 n-1,即 n==1 返回 0n==2

    對於既不是 1 也不是 2 的數字,將執行返回 1:

    s1=fibona(n-1);

    s2=fibona(n-2);

    return(s1+s2);

    以上三句話是遞迴實現

  3. 匿名使用者2024-02-03

    當呼叫結束時出現 n=1 或 n=2 時,斐波那契數列的前兩項的值將返回到前乙個呼叫,然後傳遞回第乙個呼叫。

    s1=fibona(n-1);

    s2=fibona(n-2);

    return(s1+s2);

    這三句話是。

    fibonacci(n)

    fibonacci(n-1)

    斐波那契(n-2)的實施例。

    整個解決方案是乙個遞迴過程。

  4. 匿名使用者2024-02-02

    if(n==1||n==2)

    return(n-1)

    這兩句話說,如果 n==1 返回 0,n==2 返回 1,即序列的前兩項是 0 和 1;

    s1=fibona(n-1);

    s2=fibona(n-2);

    這 2 句話是儲存所需序列中一項的前 2 項,如果第三項是必需的,則 s1 = 第二項,s2 = 第二項,它們分別稱為斐波納函式來找出;

    return(s1+s2);

    找到 s1 表示的項的後一項。

  5. 匿名使用者2024-02-01

    這是一種遞迴方法,比較難解釋,讓我試試是用數列來認識的,第一項是1,第二項是1,第三項是2......

    從第三項開始,每項都是前兩項之和,因此,if(n==1||n==2)return(n-1)

    也就是說,當你找到第一項或第二項的值時,它返回 n 1,但我想你在這裡錯了,它應該返回 1,因為第一項和第二項都是 1

    s1=fibona(n-1);

    s2=fibona(n-2);

    return(s1+s2);

    當第一項和第二項不是必需的時,則其值是前兩項的總和,因此讓兩個變數 s1、s2 和 s1 儲存前一項的值,s2 儲存 s1 的第一項,然後返回兩者的總和。

  6. 匿名使用者2024-01-31

    斐波那契是 0, 1, 1, 2, 3, 5 ,..ai,a(i+1),ai+a(i+1),.

    if(n==1||n==2)

    return(n-1);

    這句話就是找初始值!

    最後一項都是前兩項的總和! 所以首先計算前兩個專案,然後將兩個專案相加,這就是結果。

  7. 匿名使用者2024-01-30

    遞迴法比較難解釋,房東你代數算進去,然後畫在紙上,一走就明白了。

  8. 匿名使用者2024-01-29

    在第乙個問題中,問題中的 zhi:dao 工作變數表示乙個臨時變數,所以它屬於第二個問題:不僅支援數字字元,還支援其他型別的字元。 大錯特錯。

    問題 3:沒錯,這是乙個無限迴圈,除非你最終陷入乙個迴圈。

相關回答
4個回答2024-02-09

尾部節點接下來指向 null 並不難。

你只需要while(p->next! =null)。 >>>More