Số Tidy là số có các chữ số được sắp xếp theo thứ tự không giảm (tức là mỗi chữ số đều lớn hơn hoặc bằng chữ số trước nó). Chúng ta cần viết hàm kiểm tra một số có phải là số Tidy hay không.
Ví dụ
489là số Tidy234557cũng là số Tidy34535không phải số Tidy (vì 3 < 5)
Giải pháp (Đệ quy)
Mã triển khai:
const num = 234789;
const isTidy = (num, last = 10) => {
if (num) {
// Lấy chữ số cuối (từ phải sang trái)
if (num % 10 > last) {
return false;
}
// Đệ quy với phần còn lại
return isTidy(Math.floor(num / 10), num % 10);
}
return true;
};
console.log(isTidy(num));
Kết quả
Đầu ra trong console:
true
Giải thích: Hàm duyệt từ chữ số cuối về đầu, so sánh với chữ số trước đó (được lưu trong last). Nếu chữ số hiện tại > last thì vi phạm quy tắc không giảm.