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

การสร้างชุดค่าผสมที่ต้องการใน JavaScript


ฟังก์ชันควรค้นหาชุดค่าผสมที่เป็นไปได้ของตัวเลข m ทั้งหมดที่รวมกันเป็นตัวเลข n โดยกำหนดให้ใช้ได้เฉพาะตัวเลขตั้งแต่ 1 ถึง 9 และแต่ละชุดค่าผสมควรเป็นชุดตัวเลขที่ไม่ซ้ำกัน

ตัวอย่างเช่น − หากอินพุตเป็น −

const m = 3, n = 4;

จากนั้นผลลัพธ์ควรเป็น −

const output = [
   [1, 2, 4]
];

หากอินพุตเป็น −

const m = 3, n = 9;

จากนั้นผลลัพธ์ควรเป็น −

const output = [
   [1, 2, 6],
   [1, 3, 5],
];

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const m = 3, n = 9;
const findSum = (m, n) => {
   const search = (from, prefix, m, n) => {
      if (m === 0 && n === 0) return res.push(prefix);
      if (from > 9) return;
      search(from + 1, prefix.concat(from), m − 1, n − from);
      search(from + 1, prefix, m, n);
   };
   const res = [];
   search(1, [], m, n);
   return res;
};
console.log(findSum(m, n));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

[ [ 1, 2, 6 ], [ 1, 3, 5 ], [ 2, 3, 4 ] ]