Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 

Четырехзначный палиндром

(Время: 1 сек. Память: 16 Мб Сложность: 10%)
Решение №1

Наиболее простой способ решения этой задачи заключается в чтении заданного числа в качестве строки и сравнения первого с четвертым и второго со вторым символов. Алгоритмически это решение выглядит так:

  String s;

  read(s);
  if(s[1]=s[4] and s[2]=s[3]) write('YES') else write('NO');
Решение №2

Не всегда самое простое решение приходит первым в голову и не всегда начинающие программисты умеют работать со строками. Дело в том, что когда видишь, что во входных данных число, то его хочется считать в целочисленную переменную, потом расцепить на цифры, а затем уже провести сравнение. Расцепление на цифры можно проводить аналогичным образом, так же как в известной задаче "Счастливый билет". А именно, для того, чтобы получить n-ю цифру справа, нужно исходное число x разделить целочисленно на 10n-1, отбросив тем самым лишние n-1 цифр справа от исходного числа, а затем взять остаток от деления на 10 от того, что получилось, т.е. взять последнюю циру, которая и окажется n-й справа от исходного числа x. Реализация с использованием данного механизма может выглядеть так:

  int x,x1,x2,x3,x4;

  read(x);

  x1 = x div 1000;
  x2 = x div 100 mod 10;
  x3 = x div 10 mod 10;
  x4 = x mod 10;

  if(x1=x4 and x2=x3) write('YES') else write('NO');

[Обсуждение] [Все попытки] [Задача]


Красноярский краевой Дворец пионеров, (c)2006 - 2019, E-mail: admin@acmp.ru