Giả sử có vấn đề sau:
Chúng ta có một dãy số bắt đầu từ 1 và lên đến bất kỳ số nào tùy ý, chúng ta hãy gọi nó là num. Chúng ta phải chọn hai số như vậy từ dãy số (chúng ta hãy gọi chúng là m và n), sao cho:
sum(1 to num) - (m + n) = m * n
Và cuối cùng, chúng ta sẽ trả về một mảng gồm tất cả các số như vậy.
Ví dụ -
Nếu đầu vào là -
const num = 10;
Sau đó, kết quả đầu ra phải là -
const output = [ [7, 6] ];
bởi vì sum (1 đến 10) =55
và,
55 - (6 + 7) = 6 * 7 = 42
Ví dụ
Mã cho điều này sẽ là -
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));
Đầu ra
Và đầu ra trong bảng điều khiển sẽ là -
[ [7, 6] ]