002. К-удивительные числа

(Время: 3 сек. Память: 16 Мб)

Переворотом числа X назовем число, в котором все цифры числа X стоят в обратном порядке. Например, переворотом числа 6372 является число 2736, а числа 7800 - 87. Назовем K‑удивительным такое число, которое в сумме со своим переворотом дает число K.

Например, у числа 222 имеется всего два K-удивительных числа: 111 и 210, а у числа 1050 имеется девять K-удивительных числа: 129, 228, 527, 426, 525, 624, 723, 822, 921.

Требуется написать программу, которая по заданному K определит количество K‑удивительных чисел.

Входные данные

Входной файл input.txt содержит одно натуральное число K (1 ≤ K ≤ 106).

Выходные данные

Выходной файл output.txt должен содержать одно число – количество K‑удивительных чисел.

Примеры

input.txt

output.txt

1

222

2

2

1050

9

Информация о задаче

Автор, источник

 

Олимпиада

Муниципальный этап олимпиады в Ханты-Мансийском АО-Югре, 2007-2008 уч. год, 1-й тур

Тематика

Целочисленная арифметика

Примерная сложность

30%

Ссылки в Интернете

Условие,сдача решенияhttp://acmu.ru/index.asp?main=task&id_task=309

Наш сайт

Сдача решения –

Тесты – Rar

Задача подготовлена

Автор – А.В. Алексеев, дата – 25.01.2012

 

Разбор

Организуем перебор всех чисел от 1 до заданного. Для каждого числа проверяем его K-удивительность.

Программа на Паскале

{Author - A.Alexeyev,  Date - 11.01.2012}

var

  k, i, j, m, s : longint;

begin

  assign(input,'input.txt'); reset(input);

  assign(output,'output.txt'); rewrite(output);

  read(k);

  s:=0;

  for i:=1 to k do begin

    j:=i; m:=0;

    while j>0 do begin

      m:=m*10+j mod 10;

      j:=j div 10

    end;

    if i+m=k then s:=s+1

  end;

  write(s)

end.