Bắt đầu từ số 1 và lặp lại phép cộng 5 hoặc nhân 3, có thể tạo ra vô số số mới. Viết hàm nhận một số, tìm chuỗi phép cộng/nhân tạo ra số đó, trả về boolean.
Ví dụ: 13 đạt được bằng nhân 3 rồi cộng 5 hai lần → true. 15 không đạt được → false.
Phương pháp
Dùng đệ quy, thử tất cả khả năng dẫn đến giải pháp:
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));Kết quả
Đầu ra trong console sẽ là:
true false true true false true