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

Определить палиндром - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.71
london_mist
0 / 0 / 0
Регистрация: 30.11.2010
Сообщений: 3
30.11.2010, 06:06     Определить палиндром #1
Задачка 1-го курса, простенькая, но почему-то мозги не выдают никаких идей... Звучит так:

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

Конкретно меня интересует именно сам процесс нахождения, потому что я не знаю другого способа сравнения цифр числа, кроме как деления его на 10, а остаток сохраняя в новую переменную. Этот метод не канает, потому что число цифр заведомо неизвестно.

Благодарю за внимание)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2010, 06:06     Определить палиндром
Посмотрите здесь:

C++ С++. Определить слово палиндром
C++ Палиндром.
C++ Определить строки в файле, содержащие максимальную по длине подстроку-палиндром
Дано натуральное число N. Определить, является ли оно палиндромом. Число-палиндром можно читать справа налево и слева направо одинаково. Например, C++
C++ Палиндром
Дан одномерный целочисленный массив. Определить, можно ли получить из данной последовательности симметричную (палиндром) путем перестановки в исходной C++
C++ Дана строка. Определить минимальное количество символов, которые нужно добавить, чтобы получить палиндром

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
30.11.2010, 06:32     Определить палиндром #2
Можно, например, перевернуть число и сравнить с исходным.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream> 
#include <cstdlib>
using namespace std;
///////////////////////////////////////////
int revers(int n)
{
        int rev=0;
        while(n!=0)
    {
                rev=rev*10+n%10;
                n/=10;
        }
        return rev;
}
 
int main()
{
        int num;
        cout<<"Enter number:"<<endl;
        cin>>num;
        cout<<((revers(num)==num)?"Palindrom":"Ne palindrom");
 
        return 0;
}
Кстати если нужно найти количество цифр, можно делить число на 10, до тех пор, пока оно не станет равным нулю.
C++
1
2
3
4
5
6
7
tmp = num;
 
while(tmp!=0)
{
   tmp/=10;
   ++count;
}
london_mist
0 / 0 / 0
Регистрация: 30.11.2010
Сообщений: 3
30.11.2010, 06:47  [ТС]     Определить палиндром #3
Ох, сколько пока неизвестных функций и манипуляций) Спасибо большое) Сейчас буду разбираться...
Yandex
Объявления
30.11.2010, 06:47     Определить палиндром
Ответ Создать тему
Опции темы

Текущее время: 02:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru