以下のアルゴリズムを検討してください。
for(j1 = n upto 0)
for(j2 = n-j1 upto 0)
for(j3 = n-j1-j2 upto 0)
.
.
for (jmax = n -j1 - j2 - j_(max-1))
{
count++;
product.append(j1 * j2 ... jmax); // just an example
}
ご覧のとおり、上記のアルゴ スニペットに関するいくつかの関連ポイント:
- 可変数の for ループを持つアルゴリズムをリストしました。
- 最も内側の各ループで i が計算した結果は、リストに追加されます。このリストは「count」の次元まで大きくなります。
この問題は再帰の適切な候補ですか? はいの場合、問題を分割する方法が本当にわかりません。私はこれを Python でコード化しようとしていますが、皆さんからのコードは期待していません。正しい方向へのいくつかのポインタまたは例。ありがとうございました。
これはサンプルケースの最初の試みですhttp://pastebin.com/PiLNTWED