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

Baner_abiturient_5_prichin

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. Заповніть тестову таблицю за результатами роботи програми:

 

Номер

тесту

N K5 K20 K500
1 5
2 13
3 15
4 20
5 200
6 225
7 500
8 5125
9 5000
10 500025

 

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

 

Розв'язок задачі ґрунтується на застосуванні операцій ділення цілих чисел (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;
кінець;

 

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

 

Номер

тесту

N K5 K20 K500
1 5 1 0 0
2 13 0 0 0
3 15 3 0 0
4 20 0 1 0
5 200 0 10 0
6 225 1 11 0
7 500 0 0 1
8 5125 1 6 10
9 5000 0 0 10
10 500025 1 1 1000

 

 

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

 

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