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

การหาจำนวนสูงสุดโดยใช้การสลับสูงสุดหนึ่งครั้งใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้ตัวเลขเป็นอาร์กิวเมนต์แรกและตัวเดียว

หน้าที่ของฟังก์ชันของเราคือทำการสลับระหว่างตัวเลขสองหลักใดๆ อย่างน้อยหนึ่งครั้งและให้ผลจำนวนสูงสุดที่เป็นไปได้ อย่างไรก็ตาม หากตัวเลขนั้นเป็นจำนวนสูงสุดที่เป็นไปได้แล้ว เราควรส่งคืนตัวเลขนั้นเอง

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

หากตัวเลขที่ป้อนคือ −

const num = 1625;

จากนั้นผลลัพธ์ควรเป็น −

const output = 6125;

เราสลับ 1 และ 6 และนี่เป็นเพียงการสลับที่ให้ผลตอบแทนเป็นตัวเลขที่มากที่สุดในการแลกเปลี่ยนครั้งเดียว

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const num = 1625;
const findMaximumDigit = (num, max = 0) => {
   if(!num){
      return max;
   };
   return findMaximumDigit(Math.floor(num / 10), Math.max(max, num %10));
};
const makeOneSwap = (num = 1) => {
   let i = 0;
   const max = findMaximumDigit(num);
   const numStr = String(num);
   const numArr = numStr.split('');
   const maxIndex = numStr.lastIndexOf('' + max);
   while(i < maxIndex){
      if(+numStr[i] < max){
         let temp = numArr[i];
         numArr[i] = numArr[maxIndex];
         numArr[maxIndex] = temp;
         break;
      };
   };
   return +(numArr.join(''));
};
console.log(makeOneSwap(num));

ผลลัพธ์

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

6125