Определить множество, которое содержит наибольшее количество элементов, которые есть в других множествах - PascalABC.NET
Формулировка задачи:
Дано N множеств. Определить множество, которое содержит наибольшее количество элементов, которые есть в других множествах.
Решение задачи: «Определить множество, которое содержит наибольшее количество элементов, которые есть в других множествах»
textual
Листинг программы
- begin
- var tmp : Integer;
- var n := ReadLnInteger('n = ');
- var s : array of Set of Integer;
- SetLength(s, n);
- for var i := 0 to n-1 do
- begin
- var st := ReadLnString('Введите через пробел элементы ' + (i+1) + ' множества:');
- foreach var tt : String in st.ToWords(' ') do
- if TryStrToInt(tt, tmp) then
- s[i] += [tmp];
- end;
- WriteLn('Введены множества:');
- foreach var st : Set of Integer in s do
- WriteLn(st);
- var maxcount := 0; var snumber := -1;
- for var i := 0 to n-1 do
- begin
- var count := 0;
- foreach tmp in s[0] do
- begin
- var find := false;
- for var j := 0 to n-1 do
- if i <> j then
- find := find or (tmp in s[j]);
- if find then count += 1;
- end;
- if count > maxcount then
- begin
- maxcount := count; snumber := i;
- end;
- end;
- WriteLn('Множество, которое содержит наибольшее количество элементов, которые есть в других множествах: ', s[snumber]);
- end.
Объяснение кода листинга программы
- Ввод количества множеств и их элементов
- Создание массива строк для хранения введенных множеств
- Чтение количества множеств
- Инициализация массива множеств
- Чтение элементов каждого множества
- Поиск наибольшего количества элементов во всех множествах
- Определение индекса множества с наибольшим количеством элементов
- Вывод результата
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д