Кафедра інформатики

Харківський національний педагогічний університет імені Г.С. Сковороди

Кафедра інформатики

Харківський національний педагогічний університет імені Г.С. Сковороди

Задача тижня 2012

Задача тижня 10.12.12 – 16.12.12

Zadacha_tyzhnya_khopka_zadacha_tyzhnyaZadacha_tyzhnya_khopka_2_analiz_rezultativZadacha_tyzhnya_khopka_3_reytyngZadacha_tyzhnya_khopka_4_arhiv

 

Паліндром

 

Натуральне число називається паліндромом, якщо воно однаково читається з обох боків. Відомо, що з будь-якого числа можна отримати паліндром шляхом такої процедури: треба записати цифри числа у зворотному напрямку й додати отримане число до початкового; якщо результат додавання виявився не паліндромом, застосувати до нього ті ж дії; і так до тих пір, поки не отримаємо паліндром.

1. Створіть програму, яка для заданого числа N визначає кількість повторень описаної процедури, необхідну для отримання паліндрома.

Вхідні дані

Значення N – натуральне число, що не перевищує 232 , вводиться з клавіатури або задається як константа.

Вихідні дані (виводяться на екран чи зберігаються у файл)

Значення K– кількість кроків для отримання паліндрома з числа N, виводиться на екран.

2. Заповніть тестову таблицю за результатами роботи програми:


Номер

тесту

N
K
14562
212321
3956
43658
598658
665235
79991
856456259
9889977
109874

 

 

Аналіз розв’язку задачі «Паліндром»

 

Введемо допоміжні змінні:

a – для зберігання поточного початкового числа;

b – для зберігання числа, що отримане з поточного записом цифр справа наліво.

Шукане значення K можна знайти за допомогою такого алгоритму:

m: = N;
K:= -1; b:= 0;
повторювати {покрокове перетворення числа в паліндром}
K:= K+1;
m: = b+ m;
a:= m; b:= 0;
поки a >0
початок циклу {отримання числа b записом цифр у зворотному порядку}
b:= b*10+ a mod 10;
a: = a div 10;
кінець циклу;
до m = b;

 

Тестова таблиця з результатами роботи програми:


Номер

тесту

NK
14562
2123210
39562
436581
59865841
6652353
799917
8564562592
988997766
1098743

 

Журі оцінило надіслані розв’язки наступним чином:

 

УчасникКількість балів
1RomaN
3
2Юрий Дончик1
3Vitas Vitas2
4Сергій Сальніков3