Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptで欠落している演算子を入力して方程式を完成させる


一連の数値を受け取り、方程式を満たすために正しい一連の操作を返すJavaScript関数を作成する必要があります。使用できる演算子は(+、−、*、/、^、%)です。

例-

Input : 5 3 8          Output : 5+3=8
Input : 9 27 3         Output : 9=27/3
Input : 5 2 25 , 1 5 2 Output : 5^2=25 , 1=5%2
>

入力ごとに、少なくとも1つの可能なシーケンスがあり、少なくとも1つの正しいシーケンスを返す必要があります。

この問題を解決するために使用するアルゴリズムは-

です。
  • まず、147のように片側の大きい方の数字を選択します。7

  • 次に、真ん中を向くように等しいものを置きます。 1 4 7のように、1 4 =7

    になります。
  • 最後に、方程式を解きます

  • それでも問題が解決しない場合は、他の番号を試してみます

このためのコードは-

になります
const arr = ["5 3 8", "9 27 3", "5 2 25", "1 5 2", "3 3 3 30"];
const findCombination = (arr = []) => {
   const answers = [];
   for(let i = 0; i < arr.length; i++){
      const el = arr[i];
      // using brute force to try solutions
      for(let n = 0; n < 1000; n++){
         const s = el.replace(/ /g, () => "+−
         */^%="[Math.floor(Math.random() * 7)]);
         if(eval(s.replace(/=/g, "===").replace(/\^/g, "**")) === true
         && answers.indexOf(s) === −1){
            answers.push(s);
         };
      };
   }
   return answers;
};
console.log(findCombination(arr));

出力

そして、コンソールの出力は-

になります
[
   '5+3=8',
   '9=27/3',
   '5^2=25',
   '1=5%2',
   '3=3%3^30',
   '3^3+3=30',
   '3+3^3=30'
]

  1. JavaScriptスプレッド演算子

    JavaScriptのスプレッド演算子を使用すると、配列を個々の配列要素に展開できます。スプレッド演算子を使用するには、3つのドット(…)の前に配列名を付ける必要があります。 以下は、JavaScriptスプレッド演算子のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, i

  2. JavaScriptのグループ化演算子について説明します。

    グループ化演算子は、式の評価の優先順位を管理するために使用されます。 以下は、JavaScriptのグループ化演算子のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document&l