Введите с клавиатуры трехзначное число, чтобы определить, является ли это палиндромом

Обновлено: 21.11.2024

\u00a0 \u00a0 for(var j=i; j>=0; j--) \u00a0 \u00a0 \u00a0 \u00a0 reversestr\u00a0= reversestr+str.charAt(j);
\u00a0 \u00a0 >
\u00a0 \u00a0 if(str == reversestr) \u00a0 \u00a0 \u00a0 \u00a0 alert(str+\" Is Palindrome\");\u00a0 \u00a0
\u00a0 \u00a0 >
\u00a0 \u00a0 \u00a0else \u00a0 \u00a0 \u00a0 \u00a0 alert(str+\" Is not a Palindrome\");
\u00a0 \u00a0 >
>
checkPal ();
<\/script>">]" data-testid="answer_box_list">

Вы так и не сказали, какой язык использовать, поэтому вот ваш ответ на Javascript:

Новые вопросы по компьютерам и технологиям

Мы собираемся отправить электронное письмо нашим 150 000 подписчиков, чтобы открыть страницу билетов на наше новое шоу. Нам нужно разработать целевые показатели для этого… электронного письма. Начиная со 150 000 подписчиков, мы хотели бы, чтобы вы определили процент открываемости электронной почты, процент кликов по электронной почте и процент конверсии на странице (т. е. покупки), которые обеспечат продажу 3000 билетов по этому электронному письму. Пожалуйста, покажите/опишите свою работу как можно лучше.

как вы собираетесь ответственно использовать онлайн-платформы в качестве источника информации, вы можете привести пример того, как вы будете соблюдать существующие законы о … n использовании онлайн-платформ​

Напишите программу с функцией addTogether (число1, число2), которая принимает два целых числа в качестве параметров. Функция должна добавить итоги и возвращаемый результат. Вызовите функцию дважды с аргументами по вашему выбору и распечатайте результаты с соответствующим текстом. Затем попросите пользователя ввести текстовую строку, а затем букву. Затем программа напечатает, сколько раз указанная буква встречается в указанной текстовой строке. Не считать прописные и строчные буквы равными (например, это означает, что в слове «привет» 0 вхождений буквы «Е»). 3. Напишите функцию tellEvidence (myText, myLetters). Функция должна подсчитать, сколько раз буква minLetter встречается в тексте minText, и вернуть это число. Затем перепишите строки кода из пункта 2, чтобы использовать эту функцию, но убедитесь, что программа выглядит точно так же для пользователя при запуске. Предоставьте программу в том виде, в каком она появится после внесения этого изменения (вам не нужно отправлять две версии программы).

Проблема: индекс массы тела Индекс массы тела (ИМТ) — это показатель здоровья, основанный на весе. Его можно рассчитать, взяв свой вес в килограммах и разделив… на квадрат своего роста в метрах. Интерпретация ИМТ для людей 16 лет и старше выглядит следующим образом: ИМТ ИМТ < 18,5 18,5 €= ИМТ <25,0 25,0 <= ИМТ <30,0 30,0 < ИМТ Интерпретация Недостаточный вес Нормальный Избыточный вес Ожирение

При биометрическом тестировании у вас есть два образца, коды которых перечислены ниже: Образец 1: 0100111010100 Образец 2: 0010101100110 Эти два образца сравниваются с зарегистрированным образцом: Зарегистрированный образец: 0100101000100 Предположим, что расстояние Хэмминга используется для сравнение, а порог равен 3. Укажите, примете ли вы эти два образца или отклоните, и объясните причину.

<р>2. На панели инструментов форматирования доступны следующие параметры, КРОМЕ: a. изменить выравнивание б. изменить шрифт в. увеличить или уменьшить десятичную дробь … l и отступ d. печатает активные документы или выделение

Вы также можете использовать метод, в котором число или строка не заданы заранее. Здесь пользователь должен ввести число или строку в качестве входных данных, чтобы проверить, является ли число/строка палиндромом.

Использовать изображение PalindromeExample

Для просмотра видео присоединяйтесь к нашему каналу Youtube: присоединяйтесь сейчас

Отзыв

Помогите другим, поделитесь

Изучите последние руководства

Шаблоны проектирования Python

Подготовка

Тенденционные технологии

B.Tech / MCA

Службы Javatpoint

JavaTpoint предлагает слишком много высококачественных услуг. Напишите нам на [email protected], чтобы получить больше информации о предоставляемых услугах.

  • Дизайн веб-сайта
  • Разработка веб-сайта
  • Разработка Java
  • Разработка PHP
  • Вордпресс
  • Графический дизайн
  • Логотип
  • Цифровой маркетинг
  • Поисковая оптимизация на странице и за ее пределами
  • Контекстная реклама
  • Разработка контента
  • Корпоративное обучение
  • Обучение в классе и онлайн
  • Ввод данных

Подготовка к университетскому городку

Проверка того, является ли число палиндромом, является классическим домашним заданием по Java. Когда вы начинаете изучать программирование на Java, большинство институтов, обучающих программированию на Java, предоставляют такие классические программы на Java, как «Как найти число Армстронга на Java» или «Как найти число Фибоначчи на Java с помощью рекурсии» и т. д. Напишите программу на Java, чтобы проверить, приходит ли число к палиндрому. из той же категории. Для тех, кто не знаком с числами-палиндромами, число-палиндром — это число, равное обратному самому себе.

Например, 121 — это палиндром, потому что обратная сторона 121 — это 121, а 123 не является палиндромом в Java, потому что обратная сторона 123 — это 321, а 121!=321 . Найти номер палиндрома в Java легко, вам просто нужно разработать логику для обращения числа в Java.

К счастью, в Java есть несколько арифметических операторов, таких как оператор остатка (%), также известный как оператор модулей, который возвращает остаток от деления, и оператор деления (/), который возвращает частное. Используя оператор остатка и деления в Java, мы можем создать программу для проверки, является ли число палиндромом или нет.

Программа Java – числа-палиндромы в Java

Вот полная программа на Java для проверки, является ли заданное число палиндромом или нет. Эта программа работает как с положительными, так и с отрицательными числами и показывает, является ли это палиндромом, независимо от их знака. Любое однозначное число, включая ноль, всегда является палиндромом.

Эта программа может проверять двузначные и трехзначные числа на наличие палиндрома и эффективно переходить к любому числу в Java.

/**
* Java-программа для проверки, является ли число палиндромом или нет.
* Число называется палиндромом, если число
* и его обращение равны
* Эта программа на Java также может быть использована для обращения числа в Java
*/
открытый класс NoClassDefFoundErrorDueToStaticInitFailure

public static void main ( String args [])

Система. вне . println("Пожалуйста, введите число:");
int palindrome = new Scanner ( System. in ) . следующийИнт () ;

if ( isPalindrome ( палиндром )) <
System. вне . println("Число: "+палиндром
+" является палиндромом");
> иначе <
System. вне . println("Число: "+палиндром
+" не является палиндромом");
>

/*
* Метод Java для проверки, является ли число палиндромом или нет
*/

public static boolean isPalindrome ( int number ) <
int палиндром = число; // копируем число в переменную
int reverse = 0 ;

в то время как (палиндром ! = 0) <
int остаток = палиндром % 10 ;
Обратное = обратное * 10 + остаток;
палиндром = палиндром / 10 ;
>

// если исходное и обратное числа равны, значит
// число является палиндромом в Java
if ( number == reverse ) <
вернуть истину ;
>
вернуть ложь ;
>

Вывод:
Введите число:
123
Число: 123 не является палиндромом
Введите число:
121
Число: 123 — это палиндром

Это все о том, как проверить, является ли число палиндромом или нет в Java. Если вы ищете ответ на этот вопрос для целей собеседования, то лучше подготовьте рекурсивную версию программы-палиндрома на Java, поскольку обычно ожидается, что программист будет писать программы на Java, используя как рекурсию, так и итерацию на Java. Дайте мне знать, если вы найдете другой способ проверки палиндрома в Java.

Здесь программист-любитель на C++, решая задачи Project Euler (задача 4). Я бы хотел, чтобы кто-нибудь взглянул на мои ~40 строк кода и дал предложения по повышению эффективности кода, а также как/что изменить, чтобы лучше следовать общим рекомендациям по потоку программы на C++.

Задание гласит: "Палиндромное число одинаково читается в обоих направлениях. Наибольший палиндром, составленный из произведения двух двузначных чисел, равен 9009 = 91 × 99. Найдите наибольший палиндром, составленный из произведения двух 3-значных чисел. -значные числа."

\$\begingroup\$ К вашему сведению, во многих проектах Эйлера есть математические решения, не требующие повторения.Большинство вопросов составлены таким образом, чтобы вы могли попытаться понять математический «трюк». \$\конечная группа\$

\$\begingroup\$ @PaulMcKenzie Не могли бы вы выяснить и объяснить простым людям математический трюк, связанный с этим особым случаем? Спасибо! \$\конечная группа\$

\$\begingroup\$ @ProfessorVector Пол может иметь в виду один, но он кажется немного выходящим за рамки. Я ненавижу быть «тем парнем», но вы можете погуглить это, чтобы узнать, нашел ли кто-нибудь еще «хитрости» для этого, а не попытки грубой силы. Я упоминаю об этом только потому, что A) Это очень известный набор проблем, другие, вероятно, обсуждали его B) Автор этого вопроса может захотеть избежать «спойлеров» для лучших решений. Я вижу, что они включили таймер, поэтому они, возможно, пытаются оптимизировать его для скорости (опять же, может быть, и нет, но они явно не просили помочь сделать его быстрее, поэтому я говорю это). \$\конечная группа\$

5 ответов 5

Вот несколько предложений в дополнение к существующим ответам.

В целом API C++ std::chrono является более гибким и типобезопасным, чем функции C в , поэтому рассмотрите возможность использования std::chrono для определения времени функции.

В C++ обычно не рекомендуется объявлять несколько переменных в одной строке. Использование небольших типов, таких как int, по значению более эффективно, чем по ссылке, и дает вам бесплатную копию для использования. Чтобы предотвратить ошибки, я бы также добавил утверждение, гарантирующее, что ввод является неотрицательным целым числом:

Обратите внимание, что в вашей версии возникают проблемы с переполнением для некоторых больших значений number , которые не устраняются в этой версии.

Проанализировав проблему математически, можно добиться некоторых оптимизаций. Наибольшее произведение двух трехзначных чисел равно \$ 999 \times 999 = 998001 \$ , поэтому ответ будет не более чем шестизначным числом. А пока давайте просто предположим, что ответ равен \$ \ge 900000 \$ . Таким образом, палиндромы ограничены формой \$ 9abba9 \$ , где \$a\$ и \$b\$ — однозначные числа.

Применяя правило делимости для \$11\$ , мы видим, что \$ 9abba9 \$ кратно \$11\$ . Следовательно, хотя бы один из трехзначных множителей кратен \$11\$ — мы назовем этот множитель первичным множителем. Поскольку произведение является нечетным числом, первичный множитель также нечетен, поэтому мы можем начать с \$979\$ , наибольшего нечетного трехзначного числа, кратного \$11\$ , и вычитать \$22\$ за раз. Наш поиск остановится, если первичный фактор станет меньше \$900\$ , поскольку \$899 \times 999 = 898101 , а это означает, что наше предположение будет неверным.

Вот мой результат:

Результат 906609 , что верно.

\$\begingroup\$ Также цифры единиц для двух множимых должны умножаться на число, оканчивающееся на 9. То есть (1,9), (9,1), (3,3), (7,7 ) \$\конечная группа\$

\$\begingroup\$ "что означает, что наше предположение будет неверным". - Ну, априори это предположение необоснованно и может не дать решения. В конце концов, вам "повезло" \$\endgroup\$

\$\begingroup\$ @HagenvonEitzen: Если мы изменим сообщение с "Результат не найден" на "Предположение о том, что ответ выше 900000 неверен", будете ли вы удовлетворены? \$\конечная группа\$

\$\begingroup\$ @HagenvonEitzen Действительно, если предположение оказывается неверным, нам нужно выполнить еще один поиск с использованием других методов оптимизации. Лучше было бы сказать, что этот поиск находит решения выше 900000. Я изменил выходное сообщение. \$\конечная группа\$

Почему параметр is_palindrome является ссылкой? Это должен быть просто int n, поскольку это встроенный тип (т. е. небольшой), и вы не хотите изменять значение, переданное от вызывающего объекта.

Объявление time_spent может быть ближе к концу main, так как это единственное место, где вы его используете. Инициализировать его значением 0, а затем добавить к нему одно значение — это просто присваивание, и вы должны объявлять переменные как можно ближе к точке первого использования.

Обратите внимание, что я также изменил приведение типов со стиля C на стиль конструктора.

Что касается больших двойных циклов, нет смысла проверять значения i * j, которые уже были проверены (если j > i, вы уже пробовали этот случай, когда два значения были заменены местами). Таким образом, j должно начинаться с i и уменьшаться. Однако, поскольку целью является самый большой палиндром, вы должны начать j с числа 999 и закончить этот цикл, когда оно станет меньше i. Это быстро сработает с кратными большими числами.

Проверку на отсутствие возможных палиндромов большего размера следует вывести из внутреннего цикла и выполнить перед запуском цикла j. Его значение не нужно проверять на каждой итерации цикла j, потому что оно не изменится. Когда вы изменяете наибольший_палиндром, вы выходите из внутреннего цикла и не выполняете проверку. Символ '\n', используемый в этом сообщении, может быть включен в строку сообщения.

Вместо того, чтобы завершать цикл, устанавливая индекс равным 0 ( j = 0; ), используйте разрыв; утверждение.Если проверка оптимизации выполняется во внешнем цикле, вам не нужно прерывать два цикла.

В сообщении "найден палиндром" рассмотрите возможность замены '\n' на std::endl() . Это очистит вывод и позволит вам сразу увидеть сообщение. Это увеличит время выполнения, но в зависимости от того, как долго это работает и как часто встречаются палиндромы, более быстрая обратная связь, отображаемая на консоли, может быть полезной. Но при работе на тестовом сайте это может быть вредно.

Читайте также: