М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
11912
11912
21.06.2022 02:39 •  Информатика

В некоторой Меньшей Школе программистов близится время итоговой олимпиады. Всего в ней 30 групп, в каждой из которых учатся от 10 до 30 человек. В олимпиаде принимают участие команды из трех человек. Напишите программу, которая подсчитывает и выводит количество людей в самой большой группе, которую удастся разбить на команды так, чтобы не привлекать учащихся других групп и были задействованы все учащиеся группы. Гарантируется, что хотя бы одна такая группа есть. Формат входных данных
В единственной строке перечислены 30 чисел — количество учеников в каждой группе.

Формат выходных данных
Количество учеников в самой большой группе, где удалось всех разбить на команды. Гарантируется, что ответ существует.

входные данные выходные данные
17 19 23 28 20 22 14 28 13 19 10 15 22 12 17 13 17 19 10 22 13 19 19 27 10 23 29 28 26 25
27
17 14 18 18 20 12 19 18 18 14 10 15 22 12 22 18 17 14 20 17 13 14 19 12 20 13 19 13 21 20
21​

👇
Открыть все ответы
Ответ:
79033404606
79033404606
21.06.2022

Объявляем функцию gcd, принимающую два целочисленных параметра и возвращающую их наибольший общий делитель. Здесь это вычисляется при алгоритма Евклида.

Затем для удобства определяем ещё одну функцию gcd3, которая принимает уже три аргумента и, используя указанную в условии формулу и описанную выше функцию gcd, вычисляет НОД от трёх чисел.

В основной части программы просто три числа считываются с клавиатуры и выводится ответ.

Код (PascalABC.NET v3.6.2316):

function gcd(a, b: integer): integer;

begin

 while a * b <> 0 do

   (a, b) := (b, a mod b);

 Result := a + b

end;

function gcd3(a, b, c: integer) := gcd(gcd(a, b), c);

begin

 var (a, b, c) := ReadInteger3;

 print(gcd3(a, b, c))

end.

Пример ввода:

10 40 20

Пример вывода:

10

4,5(83 оценок)
Ответ:
Саня11671873478
Саня11671873478
21.06.2022

#include <cstdlib>
#include <iostream>

 

using namespace std;

 

int NOD( int a, int b)
{
   int c=1;

   int d;

   if(a>b)

    d=b;

   else

    d=a;
   for(int j=1;j<=d;j++)
   {
    if(a%j==0 && b%j==0)
    c=j;       
   }
   return c;     
}

 

int main()

{

 int A,B,C;

 cout<<"Введите А"<<endl;

 cin>>A;

 cout<<"Введите В"<<endl;

 cin>>B;

 cout<<"Введите С"<<endl;

 cin>>C;

 cout<<"НОД("<<A<<","<<B<<","<<C<<")="<<NOD(NOD(A,B),C)<<endl;

 system("PAUSE");

 return 0;

}

 

 

 

 

(Код написан на С++.)

4,5(71 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ