1

誰でもここで私を助けることができますか、私はこのコードを再帰関数に変えるための基本的なケースに固執しています...明らかに再帰関数でループを使用することはできません。

def diamond(a):

assert a > 0, "width must be greater than zero"


for i in range(0, a, 2):

    for c in range(0, a - i, 2):
        print(" ", end='')

    if a % 2 == 0:
        i += 1

    for m in range(0, i - 1):
        print("*", end='')

    print()


for i in range (0, a, 2):

    for c in range(0, i, 2):
        print(" ", end='')

    for m in range(0, a - i):
        print("*", end='')

    print()
4

2 に答える 2

1

これは宿題でなければならないので、コードは提供しませんが、その方法を言葉で説明します。

ループする代わりに、それ自体を呼び出し、必要な変数をパラメーターとして渡す関数を作成します。次に、関数に「if」を使用したテストがあります。これは、trueの場合、ループを停止し、代わりに戻ります。それはあなたがループから「落ちる」ということでした。

したがって、この場合、パラメータとして渡して、関数内で1ずつ増やしa、がより大きい場合は、だけにします。iiiareturn

于 2012-07-25T03:45:10.267 に答える