Appearance
反转数字 / revertNumber
题目描述
输入一个整数,返回反转后的数字。
输入 0 则返回 0。
负数反转后仍保留符号。
反转后,不保留高位的 0。
Example
javascript
Input: 123
Output: 321
javascript
Input: 0
Output: 0
javascript
Input: 120
Output: 21
javascript
Input: -123
Output: -321
Code
javascript
function revertNumber(n) {
if (n === 0) return 0;
let isNegative = false;
let result = 0;
if (n < 0) {
isNegative = true;
n = -n;
}
while (n > 0) {
result = result * 10 + (n % 10);
// 因为 JavaScript 中的除法会保留小数,因此取整
// 这里的结果永远 > 0,因此 ceil 或者 floor 都可以使用
n = Math.floor(n / 10);
}
return isNegative ? -result : result;
}
Test Cases
javascript
const { revertNumber } = require('../docs/algo/number/revert');
describe('revertNumber', () => {
test('revert 123', () => {
expect(revertNumber(123)).toBe(321);
});
test('revert 0', () => {
expect(revertNumber(0)).toBe(0);
});
test('revert -123', () => {
expect(revertNumber(-123)).toBe(-321);
});
test('revert 120', () => {
expect(revertNumber(120)).toBe(21);
});
});