เราจำเป็นต้องเขียนฟังก์ชัน 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