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

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

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

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

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

Задача тижня 05.11.12 – 11.11.12

Zadacha_tyzhnya_khopka_zadacha_tyzhnyaZadacha_tyzhnya_khopka_2_analiz_rezultativZadacha_tyzhnya_khopka_3_reytyngZadacha_tyzhnya_khopka_4_arhiv

 

Банкомат

 

У банкомату заряджені купюри номіналом 5 грн, 20 грн, 500 грн. Банкомат видає на замовлення клієнта суму, кратну 5 грн, застосовуючи найменшу кількість купюр.

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

Вхідні дані

Значення N (сума в гривнах, замовлена клієнтом) – натуральне число, що не перевищує 1000000.

Вихідні дані

Значення K5, K20, K500 (кількість купюр номіналом 5 грн, 20 грн, 500 грн, відповідно) – цілі числа, виводяться на екран.

Якщо значення N не кратна 5, то вивести нульові значення K5, K20, K500.

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

 

Номер

тесту

NK5K20K500
15
213
315
420
5200
6225
7500
85125
95000
10500025

 

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

 

Розв’язок задачі ґрунтується на застосуванні операцій ділення цілих чисел (div) і визначення залишку від ділення (mod):

якщо Y mod 5 =0
то
початок
Y1=Y;
K500 = Y1 div 500;
Y1=Y1 mod 500;
K20 = Y1 div 20;
Y1 = Y1 mod 20;
K5 = Y1 div 5;
кінець
інакше
початок
K500 = 0;
K20 = 0;
K5 = 0;
кінець;

 

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

 

Номер

тесту

NK5K20K500
15100
213000
315300
420010
52000100
62251110
7500001
851251610
950000010
10500025111000

 

 

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

 

УчасникКількість балів
1Миха Божко4
2Sergey Shablenko4
3Ивахненко Олег4
4Юрий Дончик4
5Vitas Vitas(немає тестової таблиці)
6Сергій Сальніков4
7RomaN4