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

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

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

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

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

Задача тижня 03.12.12 – 09.12.12

Zadacha_tyzhnya_khopka_zadacha_tyzhnyaZadacha_tyzhnya_khopka_2_analiz_rezultativZadacha_tyzhnya_khopka_3_reytyngZadacha_tyzhnya_khopka_4_arhiv

 

Аварія

 

Математики летіли на повітряній кулі над Тихим океаном. Перетинаючи екватор, вони вирішили відзначити цю подію й відкрили пляшку шампанського. На жаль, пробка пробила дірку в повітряній кулі. Водень почав витікати, а куля – знижуватися. Скоро вона впаде в океан, і всі повітроплавці будуть з’їдені голодними акулами… Але поки ще не все втрачено. Один з повітроплавців може вистрибнути, пожертвувавши собою, щоб його друзі отримали шанс дістатися до суші. Залишилася тільки одна проблема – визначити, хто буде цією людиною.

Математики вирішили поступити математично чесно. Їх було десять, і кожен з них вибрав для себе одну з десяткових цифр. Далі кожен назвав ціле число. Ці десять чисел просумували, знайшли всі дільники модуля суми, а потім суму дільників.

Той, хто вибрав цифру, що співпадає з найбільшою цифрою одержаного результату, має вистрибнути.

1. Створіть програму, що знайде цифру, вибрану математиком, якому довелось вистрибнути.

Вхідні дані

Значення Ri (i = 1, 2, …, 10) – цілі числа від -10000 до 10000, що записали математики, вводяться з клавіатури.

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

Значення Max – цифра, вибрана математиком, якому довелось вистрибнути.

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

 

Номер

тесту

Ri Max
110 1 3 6 5 10 10 4 5 107
2-7 -10 0 2 -8 -4 -7 9 4 -6
34 8 10 6 2 9 6 4 2 1
44 -3 -8 2 2 6 6 6 -7 -5
538 3 23 56 72 97 23 14 47 11
627 72 -87 -95 -46 98 32 9 47 -57
7857 250 107 666 120 344 349 394 412 506
8974 977 625 978 997 634 325 316 5 552
9-8553 1399 2257 2981 -719 1953 -4122 -3155 -1879 -7183
10-8236 -4582 -1623 -9405 -3245 9630 2873 7811 -5887 -954

 

 

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

 

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

s – для зберігання модуля суми всіх цілих чисел Ri, що напишуть математики;

d – для перебору усіх дільників суми s;

N – для збереження суми дільників s.

Спочатку необхідно знайти s, а потім отримати шукане значення Max за допомогою такого алгоритму:

d:=1;N:=0;
поки (d <=s)
початок циклу
якщо (s mod d=0) то N:=N+d;
d:=d+1;
кінець циклу;
Max:=0;
поки (N >0)
початок циклу
якщо (N mod 10 > Max) то Max:=N mod 10;
N:=N div 10;
кінець циклу;

 

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

 

Номер

тесту

RiMax
110 1 3 6 5 10 10 4 5 107
2-7 -10 0 2 -8 -4 -7 9 4 -64
34 8 10 6 2 9 6 4 2 19
44 -3 -8 2 2 6 6 6 -7 -54
538 3 23 56 72 97 23 14 47 112
627 72 -87 -95 -46 98 32 9 47 -570
7857 250 107 666 120 344 349 394 412 5067
8974 977 625 978 997 634 325 316 5 5528
9-8553 1399 2257 2981 -719 1953 -4122 -3155 -1879 -71837
10-8236 -4582 -1623 -9405 -3245 9630 2873 7811 -5887 -9543

 

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

 

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