この解決策では、再帰を使用するのが最良の方法であることがわかりました。
再帰とは、問題のより小さな部分を解決するために関数がそれ自体を呼び出すことです。それは、大きなパズルを、より小さな同一のパズルに分割して解くようなものです。関数がそれ自体を呼び出すたびに、元の問題のより小さな部分に取り組みます。
再帰には 2 つの主要な部分があります:
基本ケース:
これで再帰が停止します。これは問題の最も単純なバージョンです。それを「ゴールポスト」と考えてください。到達すると、関数はそれ自体の呼び出しを停止し、結果を返し始めます。
私たちの場合、これはインデックス == 方程式パラメーターの長さの場合です。
再帰的なケース:
これは、問題のより小さな部分に取り組むために関数が自分自身を呼び出すときです。
毎回基本ケースに一歩ずつ近づいているようなものです。
このパズルの目的は、一連の数字の間に演算子 ( 、*、||) を適用して、ターゲットの数字を作成できるかどうかを確認することです。
これが課題です:
現在の番号と次の番号の間に適用してみてください。
現在の番号と次の番号の間に * を適用してみてください。
|| を使用して 2 つの数値を組み合わせてみてください。 (連結).
次のいずれかになるまでこのプロセスを続けます。
すべての数値が使用され、結果はターゲットと等しくなります (基本ケース)
または
一致するものを見つけることなく、すべての可能性が探索されます (再帰的ケース)
ここで Python と C# の両方のソリューションを見つけることができます
いつものように、Twitter で私をフォローして、複数のメディアにわたるヒント、解決策、記事、ブログ投稿をご覧ください。
以上がAoC - DayBridge の修理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。