1. ホーム
  2. python

[解決済み] Pythonで再帰を用いた乗算関数

2022-02-25 02:23:32

質問

2つの整数 n と m の積を出力する関数 mult( n, m ) を作成する必要がある。

今のところ、こんな感じです。

def mult( n, m ):
    if m == 0:
        return 0
    elif m < 0:
        return n - n(m+1)
    else:
        return n + n(m-1)

誰か助けてください。

どのように解決するのですか?

を呼び出そうとしています。 n(m+1) の中で elifelse ブロックと言うからには n が整数である場合、これが問題です。 mult() を再帰的に送信する関数です。 nm+1 または m-1 をパラメータとして指定します。

もう一つの問題は、結果を変換するために n - mult(n, m+1) を負に変換してから返します。

...
    return - (n - mult(n, m+1))
else:
    return n + mult(n, m-1)


変更例によるデモ

>>> mult(5,-3)
-15
>>> mult(-10,-3)
30
>>> mult(5,3)
15