สมมติว่าต่อไปนี้คือปัญหา:
เรามีลำดับของตัวเลขที่เริ่มต้นจาก 1 และไม่เกินจำนวนใด ๆ เรียกมันว่า num เราต้องเลือกตัวเลขสองตัวดังกล่าวจากลำดับ (เรียกว่า m และ n) ดังนี้:
sum(1 to num) - (m + n) = m * n
และสุดท้าย เราควรคืนค่าอาร์เรย์ของกลุ่มของตัวเลขดังกล่าวทั้งหมด
ตัวอย่างเช่น −
หากอินพุตเป็น −
const num = 10;
จากนั้นผลลัพธ์ควรเป็น −
const output = [ [7, 6] ];
เพราะผลรวม (1 ถึง 10) =55
และ,
55 - (6 + 7) = 6 * 7 = 42
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const num = 10; const pickNumbers = num => { const sum = (num) * (num + 1) * (.5); const results = []; for (let n = 1; n <= num; n++) { let first = sum - n; let second = n + 1; if (first % second === 0) { let m = first / second; if (m < num && m !== n && results.every(group => group[0] + group[1] !== m + n)){ results.push([m, n]); } } } return results; } console.log(pickNumbers(10));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
[ [7, 6] ]