2

4 つの整数 (a、b、c、d) と、数学演算子 (+、-、​​、/) を表す 3 つの文字列があります。これらの int と String から特定の数 (e) を作成できるかどうかを確認したいと思います。

例えば:

a + b * c - d == e;

int はそれぞれ 1 回だけ使用でき、演算子は複数回使用できますが、2 つの int ごとに 1 回だけ使用できます。

誰でも私を助けることができますか?

4

1 に答える 1

3

まず、問題を細かく分割します。

次のように分解します。

  1. 4 つの int のすべての順列を計算します。これらの 4!(24) があるはずです。(順列の生成を調べます)

  2. 発生する可能性のある 3 つの操作のすべての組み合わせを計算します。これらの 3*3 (9) があるはずです。(繰り返しを伴う順列の生成を調べてください)。

  3. 整数の順序と演算の順序がわかったので、e を試して計算します。(組み合わせを織り交ぜます。つまり、int から 1、ops から 1、int から 2 番目、ops ect から 2 番目...) これは、すべての int 順列とすべての op の組み合わせで行う必要があります。

  4. すべての方程式 (これらのうち 216 個) を評価した後、どれも e に等しくない場合、解はありません。

于 2012-05-03T16:48:35.640 に答える