通过在Javascript中填充缺少的运算符来完成数学方程

通过在Javascript中填充缺少的运算符来完成数学方程,javascript,math,logic,operators,Javascript,Math,Logic,Operators,我偶然发现了这个编程问题。所以这个问题需要我们在输入中完成数学方程。可以使用的运算符是(+、-、*、/、^、%)。这里有一些样品 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 我希望这个示例已经让您清楚地知道问题希望我们做什么。如果不清楚,请评论,以便我能更好地解释 另外,只要可以理解,就

我偶然发现了这个编程问题。所以这个问题需要我们在输入中完成数学方程。可以使用的运算符是(+、-、*、/、^、%)。这里有一些样品

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 4 7,它将是7
  • 把一个等号放在中间。比如说147,就是14=7
  • 解决
  • 如果不行,试试其他号码

  • 我希望这有助于下面的代码通过暴力置换找到可能的答案

    constqs=[“538”、“9273”、“5225”、“1522”、“3330”];
    用于(常数q/qs)
    {
    常量answers=[];
    for(设n=0;n<1000;n++)
    {
    常量s=q.replace(//g,()=>“+-*/^%=”[Math.floor(Math.random()*7)];
    如果(eval(s.replace(/=/g,“==”)。replace(/\^/g,“**”)==true&&answers.indexOf(s)==-1)
    {
    答案:推;
    }
    }
    console.log(`可能的答案${answers.length==0?“尚未找到”:answers.join(“或”)}`);
    
    }
    这里有一个算法解决方案,可以找到所有可能的答案,并且可以轻松地翻译成任何语言:

    var数据=['2112','538','9273','5225','1525','5225,1525'];
    var操作=[
    {符号:'+',结果:(a,b)=>a+b},
    {符号:'-',结果:(a,b)=>a-b},
    {符号:'*',结果:(a,b)=>a*b},
    {符号:'/',结果:(a,b)=>a/b},
    {符号:'^',结果:(a,b)=>a**b},
    {符号:'',结果:(a,b)=>a%b}
    ];
    功能检查(str){
    //将字符串拆分为操作数数组
    变量操作数=str.trim().split(/\s+/).map(数字);
    //验证操作数数组
    if((operands.length!=3)| |操作数.包括(NaN)){
    log(`invalid input data'${str}``);
    }否则{
    log(`search solution for'${str}``);
    //这里是主要的逻辑起点
    对于(i=0;i数据。forEach(检查)吗?为什么用===和**替换“=”?
    ()=>1+2
    是一个返回
    3
    的箭头函数-你可以在JavaScript中了解更多等式(
    =
    )操作符是
    =
    和求幂(
    ^
    )操作员是
    **