Поле Чудес - найти минимальное число секторов, которое может быть на барабане - Free Pascal
Формулировка задачи:
Привет форуму, у меня вот такая "весёлая" проблемка...
Есть задача:
Поле чудес
Входные данные:
Выходные данные:
Примеры
------------------------------------------------------------------------------------------------------------------------------------------
INPUT.TXT
------------------------------------------------------------------------------------------------------------------------------------------
1) 13
5 3 1 3 5 2 5 3 1 3 5 2 5
------------------------------------------------------------------------------------------------------------------------------------------
2) 4
1 1 1 1
------------------------------------------------------------------------------------------------------------------------------------------
3) 4
1 2 3 1
------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------OUTPUT.TXT
------------------------------------------------------------------------------------------------------------------------------------------
1) 6
------------------------------------------------------------------------------------------------------------------------------------------
2) 1
------------------------------------------------------------------------------------------------------------------------------------------
3) 3
------------------------------------------------------------------------------------------------------------------------------------------
И вот вообще не пойму алгоритма...
Кто может, пожалуйста, подскажите!
Заранее спасибо!
Решение задачи: «Поле Чудес - найти минимальное число секторов, которое может быть на барабане»
textual
Листинг программы
var i,j,n:integer; a:array[0..30000] of integer; begin read(n); for i:=0 to n-1 do read(a[i]); n:=n-1; for i:=1 to n-1 do if n mod i=0 then begin j:=0; while (a[j mod i]=a[j]) and (j<n) do j:=j+1; if j=n then begin n:=i; break end end; write(n) end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д