Yahoo奇摩知識+ 將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+ 網站將會轉為唯讀模式。其他 Yahoo奇摩產品與服務或您的 Yahoo奇摩帳號都不會受影響。如需關於 Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。

麻煩幫我用C++寫出這基本的recursive遞迴程式

我之前才用for迴圈寫這程式

但今天看了recursive遞迴

說大部分的for都能改寫成recursive

資工是我的輔系

但我一直想不出來...

可以麻煩幫我用寫出這2支程式嗎?

感謝

(1)

input:

n

output:

****.....

n個*號

(2)

舉例..

input :

3

otuput:

*

**

***

4 個解答

評分
  • ?
    Lv 5
    1 0 年前

    有一個程式語言沒有loop. 只有遞迴. 那個程式語言我用過的叫lisp . 只有在修課用過. 以後在也不想用了.

  • 匿名使用者
    1 0 年前

    只可惜你不能選novus啊

  • Sara
    Lv 5
    1 0 年前

    #include<stdio.h>

    int f1(int n);

    int f2(int n);

    int main()

    {

    int n;

    printf("Enter n:");

    scanf("%d",&n);

    printf("(1):\n");

    f1(n);

    printf("(2):\n");

    f2(n);

    system("pause");

    return 0;

    }

    int f1(int n)

    {

    if(n>0){

    printf("*");

    f1(n-1);

    }

    else printf("\n");

    }

    int f2(int n)

    {

    if(n>0){

    f2(n-1);

    f1(n);

    }

    }

    印象中回答過呢..不過有些答過的題目都被移除了-.-

    測試過可以跑,有問題再問吧

    輔系是資工系??那本系是什麼系呀?

    這種題目寫不出來的話…還是不要多念這個輔系吧 @﹏@

    參考資料: 自己
  • novus
    Lv 6
    1 0 年前

    「說大部分的for都能改寫成recursive」

    錯誤,不是大部分

    理論上「所有」的迴圈都能用recursive表示

    這是探討可計算性的基本常識

    這個給你當出發點

    void PrintStar(int n) {

    if (!n) return;

    cout << '*';

    PrintStar(n-1);

    }

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