Алгоритм длины цепи палиндрома
Я пытаюсь написать функцию, которая подсчитывает, сколько раз потребовалось, чтобы найти палиндром. Для тех, кто не знаком с этим словом, палиндром - это слово, которое представляет собой слово, фразу или последовательность, которая читается одинаково назад и вперед. Например, "мадам", " Аба " и т. д. В этой функции я хотел бы работать с палиндромными числами. Условия таковы:
1) Если входное число-палиндром, верните 0, так как для создания палиндрома потребовалось 0 шагов.
2) Если число не является палиндромом, мне нужно будет добавить к нему обратный вход и проверить, является ли число палиндромом.
Например:
вход 87
87 + 78 = 165; 165 + 561 = 726; 726 + 627 = 1353; 1353 + 3531 = 4884
4884 - это палиндром, и нам потребовалось 4 шага, чтобы достичь этого, поэтому выход должен быть 4
CountPalSteps(87) -> 4
Как я могу сосчитать эту цепочку? Чего бы я хотел достичь:
1) Если число не является палиндромом, сделайте его одним, добавив обратное число. Например
palin(123){ 123 + 321 = 444 }444 теперь палиндром, и мне потребовался один шаг, чтобы достичь этого! Итак, выход должен быть 1!
Обратите внимание, мне нужно было бы только использовать дополнение!
Что я уже пробовал:
function palin(arg) { var reversed = +arg.toString().split("").reverse().join(""); if(arg === reversed){ return "The number is palindrome"} else { var sum = arg + reversed; var reversSum = +sum.toString().split("").reverse().join(""); if(sum !== reversSum){//what should I put in here?} } }
Patrice T
Где ты считаешь ?
AlexLearne
Ну, это задача, посчитать, сколько шагов мне нужно, чтобы найти палиндром. Я знаю, что мне нужно будет создать переменную счетчика, но самое сложное-как получить палиндром?
Patrice T
Может быть, вам следует объяснить, в чем ваша проблема и в чем проблема в вашем коде.
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
AlexLearne
Простите, что я вас смутил. Я обновил вопрос, надеюсь, теперь он ясен! Я действительно плохо объясняю задачи программирования!
AlexLearne
Понятно ли, что я пытаюсь сделать?