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

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

Войти
Регистрация
Восстановить пароль
 
london_mist
0 / 0 / 0
Регистрация: 30.11.2010
Сообщений: 3
#1

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

30.11.2010, 06:06. Просмотров 3001. Ответов 5
Метки нет (Все метки)

Задачка 1-го курса, простенькая, но почему-то мозги не выдают никаких идей... Звучит так:

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

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

Благодарю за внимание)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2010, 06:06
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Определить палиндром (C++):

Определить строки в файле, содержащие максимальную по длине подстроку-палиндром - C++
Задан текстовый файл input.txt. Требуется определить строки этого файла, содержащие максимальную по длине подстроку-палиндром. Если таких...

Определить минимальное количество символов, которые нужно добавить в строку, чтобы получить палиндром - C++
Здравствуйте, помогите пожалуйсто, был бы очень признателен хотя бы за идею решения(поидеи методом ветвей и границ она решается) ...

Определить минимальное количество символов, которые нужно добавить в строку, чтобы получить палиндром - C++
Определить минимальное количество символов, которые нужно добавить в строку, чтобы получить палиндром например: ввод aziz ...

Дан одномерный целочисленный массив. Определить, можно ли получить из данной последовательности симметричную (палиндром) путем перестановки в исходной - C++
Помогите написать код к данной задаче, пожалуйста Дан одномерный целочисленный массив. Определить, можно ли получить из данной...

Дано натуральное число N. Определить, является ли оно палиндромом. Число-палиндром можно читать справа налево и слева направо одинаково. Например, - C++
Дано натуральное число N. Определить, является ли оно палиндромом. Число-палиндром можно читать справа налево и слева направо одинаково....

Палиндром - C++
Дайте реализацию программы, определяющей является ли входная строка палиндромом, пожалуйста. Заранее спасибо.

5
dihlofos
Бродяга
304 / 258 / 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;
}
2
london_mist
0 / 0 / 0
Регистрация: 30.11.2010
Сообщений: 3
30.11.2010, 06:47  [ТС] #3
Ох, сколько пока неизвестных функций и манипуляций) Спасибо большое) Сейчас буду разбираться...
0
Erik1556
0 / 0 / 0
Регистрация: 19.07.2017
Сообщений: 5
06.12.2017, 22:02 #4
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
25
26
27
28
29
//Определить палиндром
#include <iostream>
using namespace std;
int main()
{
    int i, j = 0;
    int len, a;
    char s[50];
    char s2[50];
    char s3[50];
    cout << "Enter text: ";
    cin >> s;
    len = strlen(s);
    for (i = 0; i <= len; i++)
    {
        if (s[i] != ' ')
        {
            s2[j] = s[i];
            s3[j] = s[i];
            j++;
        }
    }
    strrev(s2);
    a = strcmp(s2, s3);
    if (a == 0)
        cout << s << " - palindrom" << endl;
    else
        cout << s << " - ne palindrom" << endl;
}
0
повар1
150 / 128 / 49
Регистрация: 24.02.2017
Сообщений: 528
Завершенные тесты: 1
06.12.2017, 22:14 #5
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
25
#include <iostream>
#include <sstream>
 
using namespace std;
 
int main()
{
 int a=12321,b;
 stringstream ss;
 
      b=a;
      while(b>0)
        {
          ss<<b%10;
          b/=10;
        }
      ss>>b;
      if(a==b)
         cout<<"yes";
      else
         cout<<"no";
 
  system("pause>0");
  return 0;
}
0
MusicManiac
5 / 6 / 5
Регистрация: 02.03.2016
Сообщений: 31
Записей в блоге: 3
07.12.2017, 01:06 #6
Вот кусочек моего кода, по сути вырезанного из одной записи в блоге, но суть будет понятна:

Проверяет являеться ли введеное число палиндромом в 5 строк
C++
1
2
3
4
5
cin >> first_number;
string string_number = to_string(first_number);
string string_reversed = string_number;
reverse(string_reversed.begin(), string_reversed.end());
if (string_number == string_reversed)
Взял тут - http://www.cyberforum.ru/blogs/779133/blog5015.html

Добавлено через 2 минуты
О господи, кто тут некропостингом занимаеться?

Я даже как-то не посмотрел, что тема 2010 года
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2017, 01:06
Привет! Вот еще темы с ответами:

Палиндром - C++
Здравствуйте. Пытаюсь написать программу которая проверяет является ли введёное число с клавиатуры палиндромом. Метод проверки...

Палиндром... - C++
Палиндром ведь это слова одинаково читающееся в обоих направениях. Помогите разобрать метод?! string palindrome(string word){ ...

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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