Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

กรอกสมการโดยเติมโอเปอเรเตอร์ที่หายไปใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับตัวเลขจำนวนมากและส่งกลับลำดับการดำเนินการที่ถูกต้องเพื่อให้เป็นไปตามสมการ ตัวดำเนินการที่สามารถใช้ได้คือ (+, −, *, /, ^, %)

ตัวอย่างเช่น −

อินพุต :5 3 8 เอาต์พุต :5+3=8 อินพุต :9 27 3 เอาต์พุต :9=27/3 อินพุต :5 2 25 , 1 5 2 เอาต์พุต :5^2=25 , 1=5%2

สำหรับแต่ละอินพุต มีอย่างน้อยหนึ่งลำดับที่เป็นไปได้ เราจะต้องส่งคืนลำดับที่ถูกต้องอย่างน้อยหนึ่งรายการ

อัลกอริทึมที่เราจะใช้ในการแก้ปัญหานี้คือ −

  • อย่างแรกเราเลือกจำนวนที่มากกว่าด้านใดด้านหนึ่ง เช่น 1 4 7 จะเป็น 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 =[]) => { คำตอบ =[]; สำหรับ (ให้ i =0; i  "+− */^%="[Math.floor (คณิตศาสตร์สุ่ม() * 7)]); if(eval(s.replace(/=/g, "===").replace(/\^/g, "**")) ===true &&answers.indexOf(s) ===-1 ){ answer.push(s); }; }; } ส่งคืนคำตอบ;};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']