Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ตรวจสอบว่าลำดับการดำเนินการให้ผลลัพธ์เป็นตัวเลขที่กำหนดด้วย JavaScript Recursion

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

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

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

แนวทาง

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

ตัวอย่างโค้ด

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