通过在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
我希望这个示例已经让您清楚地知道问题希望我们做什么。如果不清楚,请评论,以便我能更好地解释
另外,只要可以理解,就可以使用任何语言。如果您试图解决这些问题,但不知道如何尝试
我希望这有助于下面的代码通过暴力置换找到可能的答案
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(检查)你试过什么吗?什么不起作用?我最初的想法是用操作符替换空间,但我认为这并不能解决在每个空间中使用什么操作符。我试过谷歌,但没有发现类似的东西。如果你知道任何类似的帖子,请将链接发送到这里。是的,这就是我在问题中所说的。如何解决这个问题?当你声明s时,你能解释一下什么是()=>吗?为什么用===和**替换“=”?()=>1+2
是一个返回3
的箭头函数-你可以在JavaScript中了解更多等式(=
)操作符是=
和求幂(^
)操作员是**
。