Computer >> Máy Tính >  >> Lập trình >> Javascript

Kiểm tra xem một chuỗi hoạt động có mang lại một số nhất định hay không bằng JavaScript Recursion

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