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

ค้นหาหมายเลขพาลินโดรมที่ใหญ่ที่สุดที่สร้างจากผลคูณของตัวเลขสองหลักใน JavaScript


ให้เราพิจารณาตัวเลข 9009 นี่เป็นตัวเลขพิเศษในแง่ที่ว่านี่คือจำนวนพาลินโดรมที่ใหญ่ที่สุดที่สามารถเกิดขึ้นได้จากการคูณตัวเลข 2 หลักสองตัว (91 และ 99)

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้ตัวเลข n (ซึ่งระบุจำนวนหลัก) ฟังก์ชันควรค้นหาและส่งกลับจำนวนพาลินโดรมที่ใหญ่ที่สุดที่สามารถเกิดขึ้นได้จากการคูณตัวเลขสองหลัก n

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const largestPalindromic = num => {
   let i, n, m, d, max, sup, limit, number = 0;
   for (i = 1; i < num; i += 1) {
      number = 10 * number + 9;
   };
   max = number;
   sup = 10 * number + 9;
   const isPalindromic = n => {
      let p = 0, q = n, r;
      while (n > 0) {
         r = n % 10;
         p = 10 * p + r;
         n = Math.floor(n / 10);
      };
      return p === q;
   };
   for (n = sup * sup, m = max * max; n > m; n -= 1) {
      if (isPalindromic(n)) {
         limit = Math.ceil(Math.sqrt(n));
         d = sup;
         while (d >= limit) {
            if (n % d === 0 && n / d > max) {
               return n;
            }
            d -= 1;
         }
      }
   };
}
console.log(largestPalindromic(3));

ผลลัพธ์

ต่อไปนี้เป็นผลลัพธ์บนคอนโซล -

906609