Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.80
HelloWorld56
5 / 5 / 1
Регистрация: 29.03.2012
Сообщений: 62
#1

Определить, является ли данное пятизначное число палиндромом - C++

29.03.2012, 18:15. Просмотров 2842. Ответов 12
Метки нет (Все метки)

Программа должна определять, является ли данное пятизначное число палиндромом. Палиндром-число или текст, который читается одинаково как слева так и справа:939; 49094; 11311.

Как определить является число палиндромом или нет?

Код можно не писать, объясните "на словах".
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2012, 18:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить, является ли данное пятизначное число палиндромом (C++):

Ввести пятизначное число и определить, является ли оно палиндромом - C++
Как понять полиродедное число?

Является ли данное число палиндромом - C++
дано натуральное число выяснить есть ли данное число палиндромом #include<iostream.h> #include<conio.h> #include<math.h> float...

Проверить, является ли данное число палиндромом(перевертышем) - C++
Задача 5/7: Дано целое четырехзначное число. Проверить, является ли данное число палиндромом(перевертышем),как, например, числа 1221,...

Составить программу, выясняющую, является ли данное число палиндромом - C++
Помогите, пожалуйста, решить задачу в С++. Составить программу, выясняющую, является ли данное число палиндромом, то есть таким,...

Определить, является ли число палиндромом - C++
Проверить истинность высказывания: «Данное четырехзначное число читается одинаково слева направо и справа налево »

Определить, является ли число палиндромом - C++
Дано натуральное число n (n<9999). Определить, является ли это число палиндромом (перевертышем) с учетом четырех цифр (например 2222,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Rengen
3 / 3 / 0
Регистрация: 15.01.2012
Сообщений: 67
29.03.2012, 18:20 #2
Первое и последнее, второе и предпоследнее и т.д. числа должны равняться.
0
HelloWorld56
5 / 5 / 1
Регистрация: 29.03.2012
Сообщений: 62
29.03.2012, 18:24  [ТС] #3
А как эти цифры сравнить? Это же не отдельные числа. Они все в одном числе ведь
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
29.03.2012, 18:25 #4
HelloWorld56, можно и в стоку забить.
0
was3110
1 / 1 / 0
Регистрация: 29.03.2012
Сообщений: 12
29.03.2012, 18:26 #5
мне кажется легче преобразовать число в массив символов.
Индексы от 0 до n=length
И потом в цикле проверять
Код
for(i=0;i<n/2;i++)
if(ch[i]!=ch[n-i]) return false;
return true;
0
alex120
Так говорил Заратустра...
62 / 47 / 3
Регистрация: 19.01.2012
Сообщений: 162
29.03.2012, 18:29 #6
Можно использовать комбинации % вместе с /

C++
1
2
if (i%10 != i/10%10 && i%10 != i/100%10 && i/10%10 != i/100%10)
...
Сравнивает, есть ли одинаковые цифры в трёхзначном числе.
Вот в таком духе что-то...
0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
29.03.2012, 18:33 #7
Цитата Сообщение от was3110 Посмотреть сообщение
мне кажется легче преобразовать число в массив символов.
а можно не мучать себя преобразованиями и сразу считывать «число» в строковую переменную
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
29.03.2012, 18:35 #8
C++
1
2
3
4
5
6
7
8
9
10
    c = a;
 
    while (a)
    {
        b *= 10;
        b += a%10;
        a/=10;
    }
 
    std:: cout << (c==b ? "YES" : "NO") << "\n";
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
29.03.2012, 18:35 #9
C++
1
2
#include <iostream>
int main(){int n;std::cin>>n;std::cout<<(((n/1000)+(n%100)/10+(n%10)*10)%1001)?"":"not")<<"palindrom\n";return 0;}
0
Rengen
3 / 3 / 0
Регистрация: 15.01.2012
Сообщений: 67
29.03.2012, 18:36 #10
Цитата Сообщение от HelloWorld56 Посмотреть сообщение
А как эти цифры сравнить? Это же не отдельные числа. Они все в одном числе ведь
Ну есть разные алгоритмы разбиения. В условие оговорено в каком формате вводиться данные будут?
Если int то объясню на простом примере:
Есть число 234. Чтобы выделить 4 нужно взять остаток от деления числа 234 на 10 (234%10).Чтобы получить 3 нужно взять остаток от деления числа 234 на 100 и разделить нацело его на 10(234%100/10). Чтобы получить 2 нужно 234 поделить нацело на 100(234/100).
Если же можно string'ом вогнать то тогда проще. У тебя сразу массив из чисел, как сказал Dani


Опять опоздал!!
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
29.03.2012, 18:38 #11
Kuzia domovenok, и думаете оно работает? 1231 - palindorom?
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
29.03.2012, 19:06 #12
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
C++
1
2
#include <iostream>
int main(){int n;std::cin>>n;std::cout<<(((n/1000)+(n%100)/10+(n%10)*10)%1001)?"":"not")<<"palindrom\n";return 0;}
Эх! бред написал
C++
1
2
#include <iostream> 
int main(){int n;std::cin>>n;std::cout<<((n/1000-n%100/10-n%10*10)?"not":"")<<"palindrom\n";return 0;}
Вот так работает!
0
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
29.03.2012, 22:29 #13
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
int main()
{
    int a; //Исходное число
    cin >> a; //Вводим его с клавиатуры
    int temp = a; //Объявляем временную переменную со значением исходного числа
 
    int b = 0; //Число перевернутое
 
    while (temp != 0)
    {
          b = b * 10 + temp % 10; //Переворачиваем число по цифрам
          temp /= 10; //Отбрасываем последнюю цифру
    }
 
    if (a == b)
          std::cout << "ГЏГ*ëèГ*äðîì!";
    else
          std::cout << "Fail :(";
    
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2012, 22:29
Привет! Вот еще темы с ответами:

Определить, является ли число палиндромом - C++
Ввести с клавиатуры пятизначное число и определить, является ли оно палиндромом, т.е. одинаково читается в обоих направлениях (например,...

Определить, является ли число палиндромом - C++
Если можно то плиз с коментариями, я ток новичёк в этой проге, заранее спс. 1) Переменной t присвоить значение true , если дата m,d,y...

Определить, является ли заданное натуральное число палиндромом - C++
Всем доброго времени суток!Подскажите пожалуйста, если для определения является ли строка палиндромом программа выглядит так: #include...

Определить является ли заданное десятичное число палиндромом - C++
Дано трехзначное число. Напишите программу определения, является ли оно палиндромом, т.е. числом, десятичная запись которого читается...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.03.2012, 22:29
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru