Написать программу определяющую является ли число палиндромом

Программа должна определить является ли введение число палиндромом. Вводимое число должно быть пятизначным а результат программы должен быть: «YES» или «NO». Палиндром — это число или текст который читается одинаково и слева и справа: 939, 49094, 11311 в C++

Пацаны вы из какой школы?
Чё ты писал и перестал писать
5 (1 оценка)
spoker28 4 года назад
Светило науки — 2 ответа — 2 помощи

#include using namespace std; string s; int main()< cout>s;//Вводи число if(s[0]==s[4] s[1]==s[3])// Условие палиндромности 5-значного числа cout

0 (0 оценок)
csharp 4 года назад
Светило науки — 332 ответа — 2858 раз оказано помощи

  • Программа работает не только с пятизначными числами, а даже с теми, которые не превосходят лимит типа. Но тем не менее, Вы можете расширить тип и работать с большими числами.
  • Открывать через любой текстовый блокнот. Также прилагается скриншот кода.
  • Компиляция производилась в среде Visual Studio 2017

Алгоритм

Число превращается в строку, и с помощью цикла for сверяется первая (нулевой по счёту, так как мы работаем в 10 системе счисления) и последние символы, затем вторая и предпоследняя, и так до проверки последнего и первого символа.

Решение 324 задачи acmp.ru.C++.Четырехзначный палиндром.

Источник: megaurok.com

Упражнения на языке C: считывает пятизначное целое число и определяет, является ли это палиндромом.

Основные объявления и выражения C: упражнение 82 с решением

Напишите программу на C, которая считывает пятизначное целое число и определяет, является ли это палиндромом.

Читайте также:
Как подключить к Яндекс такси программу

Пример ввода: 33333

Пример решения:

Код C:

#include int is_Palindrome (int); int main () int is_Palindrome (int n)
Введите пятизначное число: 33333 — это палиндром.

Графическая презентация:

Редактор кода программирования C:

Источник: nanomode.ru

Почему не срабатывает алгоритм определения палиндрома числа?

Палиндромом называется число или фраза текста, которая читается одинаково как слева направо, так и в обратном порядке. Например, каждое из следующих пятизначных целых чисел является палиндромом: 12321, 55555, 45554 и 11611. Напишите программу, которая считывает пятизначное целое число и определяет, является ли оно палиндромом. (Подсказка: примените операции деления и взятия по модулю для разложения числа на отдельные цифры.)

И всё работает, однако есть нюанс, мне как новичку сложно понять в чем именно проблема, то есть понятно что в алгоритме, но вот где именно?

spoiler

/*Program that reads in a five-digit integer and determines whether or not it’s a palindrome.*/ /*Created by kacToHbI4*/ #include int main(void) < int a, num1 = 10000, num2 = 1000, num3 = 100, num4 = 10, num5 = 1, num2_1, num3_1, num4_1, num5_1, result1, result2, result3, result4, result5; printf(«Enter a five-digit number: «); scanf(«%d», /*****Block for separates the number into its individual digits.*****/ /********************************************************************/ result1 = a / num1; num2_1 = a % num1; result2 = num2_1 / num2; num3_1 = num2_1 % num2; result3 = num3_1 / num3; num4_1 = num3_1 % num3; result4 = num4_1 / num4; num5_1 = num4_1 % num4; result5 = num5_1 / num5; /*****This block determines whether or not it’s a palindrome.*****/ /*****************************************************************/ if(result1 == result5) < if(result2 == result4) printf(«It’s a palindrome.n»); >else printf(«This is not palindrome.n»); return 0; >

Все числа обрабатываются нормально, кроме ситуации с тремя нулями, причем ситуации когда либо один 0 в начале и два в конце, либо когда наоборот два 0 в начале и один в конце, ниже пример моих тестов:

Читайте также:
Программа для настройки Wi-Fi на ПК

Задача 324. Четырехзначный палиндром. acmp.ru C++

spoiler

~/workspace/chapter3/ $ gcc 3.35.c -o 3.35.exe
~/workspace/chapter3/ $ ./3.35.exe
Enter a five-digit number: 01200
~/workspace/chapter3/ $ ./3.35.exe
Enter a five-digit number: 00120
~/workspace/chapter3/ $ ./3.35.exe
Enter a five-digit number: 01300
~/workspace/chapter3/ $ ./3.35.exe
Enter a five-digit number: 012345
This is not palindrome.
~/workspace/chapter3/ $ ./3.35.exe
Enter a five-digit number: 01210
It’s a palindrome.
~/workspace/chapter3/ $ ./3.35.exe
Enter a five-digit number: 00200
It’s a palindrome.
~/workspace/chapter3/ $ ./3.35.exe
Enter a five-digit number: 01200
~/workspace/chapter3/ $ ./3.35.exe
Enter a five-digit number: 01100
~/workspace/chapter3/ $ ./3.35.exe
Enter a five-digit number: 00110
~/workspace/chapter3/ $ ./3.35.exe
Enter a five-digit number: 00011
This is not palindrome.
~/workspace/chapter3/ $ ./3.35.exe
Enter a five-digit number: 09900
~/workspace/chapter3/ $ ./3.35.exe
Enter a five-digit number: 00990
~/workspace/chapter3/ $

Этот же алгоритм, но в другой задаче работает прекрасно с любой комбинацией цифр, ну естественно я не смог протестировать все 10000 комбинаций.
Задача:

spoiler

Напишите программу, которая считывает число из пяти цифр, разделяет это число на отдельные цифры и выводит эти цифры на печать, отделяя одну от другой тремя пробелами. Например, если пользователь ввел число 42339, программа должна напечатать.
4 2 3 3 9

spoiler

#include int main(void) < int a, num1 = 10000, num2 = 1000, num3 = 100, num4 = 10, num5 = 1, result1, result2, result3, result4, result5, num2_1, num3_1, num4_1, num5_1; printf(«Enter a five digit number: «); scanf(«%d», result1 = a / num1; num2_1 = a % num1; result2 = num2_1 / num2; num3_1 = num2_1 % num2; result3 = num3_1 / num3; num4_1 = num3_1 % num3; result4 = num4_1 / num4; num5_1 = num4_1 % num4; result5 = num5_1 / num5; printf(«%dt%dt%dt%dt%dtn», result1, result2, result3, result4, result5); return 0; >
spoiler

~/workspace/chapter2/ $ ./2.30.exe
Enter a five digit number: 12342
1 2 3 4 2
~/workspace/chapter2/ $ ./2.30.exe
Enter a five digit number: 00001
0 0 0 0 1
~/workspace/chapter2/ $ ./2.30.exe
Enter a five digit number: 00012
0 0 0 1 2
~/workspace/chapter2/ $ ./2.30.exe
Enter a five digit number: 00120
0 0 1 2 0
~/workspace/chapter2/ $ ./2.30.exe
Enter a five digit number: 00000
0 0 0 0 0
~/workspace/chapter2/ $ ./2.30.exe
Enter a five digit number: 98756
9 8 7 5 6
~/workspace/chapter2/ $ ./2.30.exe
Enter a five digit number: 01350
0 1 3 5 0

Читайте также:
Чем всегда различаются имена файлов которые созданы с помощью разных программ

И есть дальше задача где я хотел применить подобный алгоритм, но если в нем ошибка, то и задачу решать надо после исправления алгоритма.
Пытаюсь разобраться сам, но видимо маловато опыта =(

  • Вопрос задан более трёх лет назад
  • 584 просмотра

3 комментария

Средний 3 комментария

Источник: qna.habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru