Chúng ta cần viết một hàm JavaScript nhận vào một số. Hàm nên trả về số nhỏ nhất có thể tạo được bằng cách sắp xếp lại các chữ số của số đó. Ví dụ: Nếu số đầu vào là 614532 thì đầu ra là 123456. Điều kiện: không được dùng phương thức String hay mảng để lưu trữ.
Ví dụ
Code cho việc này sẽ là:
const num = 614532;
const sortDigits = num => {
const getDigit = e => Math.floor(num / 10 ** e) % 10;
const l = Math.ceil(Math.log10(num)) - 1;
let e = l;
while (e--) {
const left = getDigit(e + 1);
const right = getDigit(e);
if (left <= right) continue;
num += (right - left) * 9 * 10 ** e;
e = l;
}
return num;
};
console.log(sortDigits(num));Kết quả
Kết quả hiển thị trong console sẽ là:
123456