kafinfo КАФЕДРА ІНФОРМАТИКИ

Baner_abiturient_5_prichin

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
1 456 2
2 12321
3 956
4 3658
5 98658
6 65235
7 9991
8 56456259
9 889977
10 9874

 

 

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

 

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

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;

 

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


Номер

тесту

N
K
1 456 2
2 12321 0
3 956 2
4 3658 1
5 98658 41
6 65235 3
7 9991 7
8 56456259 2
9 889977 66
10 9874 3

 

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

 

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