Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2010, 19:14   #1
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию Определение цифр палиндромов

Доброго времени суток уважаемые форумчане.
Столкнулся с любопытной задачей "Написать программу которая определяет является ли введенное число палиндромом (палиндромы-слова одинаково читающиеся в обоих направлениях, в данном случае цифры 14541, 56865 и тд.)

Из своих мыслей, для выделения разрядов может быть использовать % Тогда при делении на 2 можно выяснить последний разряд четный или нечетный, а дальше ступор .
Может быть подскажите идею?

На форуме по палиндромам нашел вот это:
Код:
n:=0;
   while a>0 do  
     begin
        k:=a mod 10;     {15287=1,5,2,8,7}
        n:=n+1;
        b[n]:=k;
        a:=a div 10;
     end;
Паскаль не заню суть не уловил.

Да и еще, задача решается без применения библиотек, функций и массивов.
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол
atenon вне форума Ответить с цитированием
Старый 07.01.2010, 19:55   #2
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

А применять строки можно?
Я на олимпиаде проверял на палиндромность так:
Код:
#include <iostream>

using namespace std;

int main()
{
    string s,s2;
    int i;
    cin>>s;
    for (i=0;s.length()>i;i++)
        s2=s[i]+s2;
    if (s==s2)
     cout<<"Палиндром"; else
     cout<<"Не палиндром";
    return 0;
}
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 07.01.2010, 20:05   #3
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию

Нет строки тоже нельзя!! Потому меня и заинтересовала эта задача. А на вопрос почему нельзя применять, ответ такой, в книге, из которой я взял эту задачу темы по классам, массивам и строкам идут позднее этой задачи, рассмотрены только структуры повторения и выбора, даже функции еще не рассматривались.
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол
atenon вне форума Ответить с цитированием
Старый 07.01.2010, 20:29   #4
Valentine
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 14
По умолчанию

Мысль такая: перевернуть число и после этого результат сравнить с заданным. Если одинаковые, то палиндром. Оператор % использовать при делении на разряд, т.е. на 10, 100 и т.д. Но нужно предусмотреть то, что заданное число может заканчиваться на нули.
Valentine вне форума Ответить с цитированием
Старый 07.01.2010, 20:44   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Но нужно предусмотреть то, что заданное число может заканчиваться на нули.
ну-ка, ну-ка... а приведите как примерчик числа палиндрома, заканчивающегося на нули? если я правильно разбираюсь в колбасных обрезках, то нули можно смело отбрасывать, если оставшееся число является палиндромом, то и исходное число (с нулями) — тоже палиндром.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.01.2010, 20:50   #6
Valentine
Пользователь
 
Регистрация: 29.11.2009
Сообщений: 14
По умолчанию

Да, все верно. Это я ерунду написал. Последнее предложение в предыдущем моём сообщении считать глупостью.
Valentine вне форума Ответить с цитированием
Старый 07.01.2010, 21:06   #7
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию

Цитата:
Оператор % использовать при делении на разряд, т.е. на 10, 100 и т.д.
Спасибо. Вся проблема заключалась как раз в том, чтобы разобрать число по разрядам.
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол
atenon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подсчет цифр Михаил1 Microsoft Office Excel 1 07.10.2009 13:21
Поиск палиндромов в тексте. DELPHI JuliaBelochka Помощь студентам 7 26.04.2009 14:57
Натуральное число, в записи которого п цифр, называется числом Армстронга, если сумма его цифр, возведенн OTLi4HO Общие вопросы C/C++ 6 14.01.2009 19:48
Найти кол. палиндромов массива proger_noob Помощь студентам 8 05.12.2008 13:34
Нахождение слов-палиндромов ("перевертышей") 1234 Помощь студентам 16 26.05.2008 19:01