Một số là một số chênh lệch khi -
-
Nó có ít nhất ba chữ số và
-
Nó chính xác chia hết cho số được tạo thành bằng cách đặt các chữ số đầu tiên và cuối cùng của nó với nhau
Ví dụ:
1053 is a gapful number because it has 4 digits and it is exactly divisible by 13. 135 is a gapful number because it has 3 digits and it is exactly divisible by 15.
Công việc của chúng tôi là viết một chương trình trả về số chênh lệch gần nhất với số chúng tôi cung cấp làm đầu vào.
Hãy viết mã -
const n = 134; //receives a number string and returns a boolean const isGapful = (numStr) => { const int = parseInt(numStr); return int % parseInt(numStr[0] + numStr[numStr.length - 1]) === 0; }; //main function -- receives a number, returns a number const nearestGapful = (num) => { if(typeof num !== 'number'){ return -1; } if(num <= 100){ return 100; } let prev = num - 1, next = num + 1; while(!isGapful(String(prev)) && !isGapful(String(next))){ prev--; next++; }; return isGapful(String(prev)) ? prev : next; }; console.log(nearestGapful(n));
Đầu ra trong bảng điều khiển sẽ là -
135