|
Четырехзначный палиндром
(Время: 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');
| |