Bằng cách bắt đầu từ số 1 và liên tục thêm 5 hoặc nhân với 3, một lượng nhỏ các số mới có thể được tạo ra. Chúng tôi bắt buộc phải viết một hàm, với một số cho trước, cố gắng tìm một chuỗi các phép cộng và phép nhân tạo ra số đó. Và trả về một boolean dựa trên thực tế là có tồn tại bất kỳ chuỗi nào như vậy hay không
Ví dụ,
Đầu tiên có thể đạt đến số 13 bằng cách nhân với 3 và sau đó thêm 5 hai lần, vì vậy hàm sẽ trả về true cho 13. Trong khi đó không thể đạt tới số 15, vì vậy hàm phải trả về false cho 15.
Phương pháp tiếp cận
Chúng tôi sẽ sử dụng một cách tiếp cận đệ quy, trong đó chúng tôi liên tục thử tất cả các khả năng dẫn đến giải pháp mong muốn. Mã cho cách tiếp cận này sẽ là -
Ví dụ
const sequenceExists = (num, curr = 1) => { if(curr > num){ return false; }; if(curr === num){ return true; }; return sequenceExists(num, curr+5) || sequenceExists(num, curr*3); }; console.log(sequenceExists(18)); console.log(sequenceExists(15)); console.log(sequenceExists(32)); console.log(sequenceExists(167)); console.log(sequenceExists(17)); console.log(sequenceExists(1119));
Đầu ra
Đầu ra trong bảng điều khiển sẽ là -
true false true true false true