Поле Чудес - найти минимальное число секторов, которое может быть на барабане - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д