Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm số lượng tối đa bằng cách sử dụng nhiều nhất một lần hoán đổi trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript lấy một số làm đối số đầu tiên và duy nhất.

Nhiệm vụ của hàm của chúng ta là thực hiện nhiều nhất một lần hoán đổi giữa hai chữ số bất kỳ của số và mang lại số lớn nhất có thể. Tuy nhiên, nếu số này đã là số tối đa có thể, chúng tôi sẽ trả về chính số đó.

Ví dụ -

Nếu số đầu vào là -

const num = 1625;

Sau đó, đầu ra phải là -

const output = 6125;

Chúng tôi đã hoán đổi 1 và 6 và đây là lần hoán đổi duy nhất mang lại con số lớn nhất trong một lần hoán đổi duy nhất

Ví dụ

Mã cho điều này sẽ là -

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

6125