async function reverse(n) {
return Number(
n
.toString()
.split('')
.reverse()
.join('')
);
}
export default class Test {
async palindrome(num) {
if (num < 9) return num + 1;
if (num === 9) return 11;
const numLength = num.toString().length;
if (numLength % 2 === 0) {
const start = num.toString().substr(0, numLength / 2);
const end = num.toString().substr(numLength / 2, numLength / 2);
let newStart = await reverse(start);
if (newStart > end) {
return `${start}${newStart}`;
} else {
const start1 = Number(start) + 1;
newStart = await reverse(start1);
return `${start1}${newStart}`;
}
}
if (numLength % 2 === 1) {
const subLength = (numLength - 1) / 2;
const start = Number(num.toString().substr(0, subLength));
const end = Number(num.toString().substr(subLength + 1, subLength));
let center = Number(num.toString().substr(subLength, 1));
const startReverse = await reverse(start);
if (startReverse > end) {
return `${start}${center}${startReverse}`;
} else {
center += 1;
return `${start}${center}${startReverse}`;
}
}
}
}
for (let i = 0; i < 20; i++) {
for (let j = 0; j < 33; j++) {
const q = 100 - i - j;
if (i + j + q === 100 && 5 * i + 3 * j + q / 3 === 100) {
console.log({i, j, q});
}
}
}