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

Baner_abiturient_5_prichin

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
1 10 1 3 6 5 10 10 4 5 10 7
2 -7 -10 0 2 -8 -4 -7 9 4 -6
3 4 8 10 6 2 9 6 4 2 1

4 4 -3 -8 2 2 6 6 6 -7 -5

5 38 3 23 56 72 97 23 14 47 11

6 27 72 -87 -95 -46 98 32 9 47 -57

7 857 250 107 666 120 344 349 394 412 506

8 974 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;
кінець циклу;

 

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

 

Номер

тесту

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

 

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

 

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