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

การหาตัวเลขมากที่สุดในตัวเลขด้วย Recursion - JavaScript

ฟังก์ชันแบบเรียกซ้ำ (recursive) เพื่อหาตัวเลขหลัก (digit) ที่มีค่ามากที่สุดในตัวเลขที่กำหนด

ตัวอย่าง

// Input: 45654356
// Output: 6

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

const num = 45654356;

const greatestDigit = (num = 0, greatest = 0) => {
  if (num) {
    // หาค่ามากที่สุดระหว่างหลักปัจจุบันกับค่าสูงสุดที่พบจนถึงตอนนี้
    const max = Math.max(num % 10, greatest);
    // เรียกซ้ำด้วยตัวเลขที่ตัดหลักสุดท้ายออก และค่าสูงสุดใหม่
    return greatestDigit(Math.floor(num / 10), max);
  }
  return greatest;
};

console.log(greatestDigit(num));

หลักการทำงาน

  • num % 10 - ดึงหลักหน่วย (หลักสุดท้าย)
  • Math.floor(num / 10) - ตัดหลักหน่วยออก
  • Math.max() - เปรียบเทียบหาค่ามากกว่า
  • พารามิเตอร์ greatest สะสมค่าสูงสุดระหว่างการเรียกซ้ำ

ผลลัพธ์

6

ข้อดีของ Recursion: โค้ดกระชับ อ่านง่าย และจัดการสถานะผ่านพารามิเตอร์ได้โดยไม่ต้องใช้ตัวแปรภายนอก