Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ตรวจสอบว่าชุดของการดำเนินการให้ตัวเลขที่กำหนดด้วย JavaScript Recursion


โดยเริ่มจากเลข 1 และเพิ่ม 5 หรือคูณด้วย 3 ซ้ำๆ กัน ก็จะสามารถผลิตตัวเลขใหม่ได้ไม่จำกัด เราจำเป็นต้องเขียนฟังก์ชันที่พยายามหาลำดับของการบวกและการคูณที่สร้างตัวเลขนั้น และส่งคืนค่าบูลีนโดยพิจารณาจากข้อเท็จจริงว่ามีลำดับดังกล่าวอยู่หรือไม่

ตัวอย่างเช่น

สามารถไปถึงหมายเลข 13 ได้โดยการคูณด้วย 3 ก่อนแล้วจึงบวก 5 สองครั้ง ดังนั้นฟังก์ชันควรคืนค่าเป็นจริงสำหรับ 13 ในขณะที่ไม่สามารถหาหมายเลข 15 ได้เลย ดังนั้นฟังก์ชันควรคืนค่าเท็จสำหรับ 15

แนวทาง

เราจะใช้วิธีการแบบเรียกซ้ำ ซึ่งเราจะลองความเป็นไปได้ทั้งหมดที่นำไปสู่โซลูชันที่ต้องการซ้ำแล้วซ้ำเล่า รหัสสำหรับวิธีนี้จะเป็น -

ตัวอย่าง

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));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็น -

true
false
true
true
false
true