在 JavaScript 中,使用最多一次交换来查找最大数字
javascriptweb developmentfront end technology
我们需要编写一个 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