В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
nizyulkoelena
nizyulkoelena
20.11.2021 06:25 •  Информатика

, нужно заполнить таблицу ( вписать программы программы )


, нужно заполнить таблицу ( вписать программы программы )

Показать ответ
Ответ:
halfa
halfa
21.07.2020 09:42
Пусть b - количество быков, k - количество коров, t - количество телят.
Тогда можно составить систему уравнений

Два уравнения, три неизвестных. Придется решать перебором вариантов.
Но прямой перебор - это неинтересно. Попробуем оптимизировать.
На 100 рублей можно купить максимум 100/10=10 быков, или 100/5=20 коров, или 100/0.5=200 телят. Без телят не обойтись, даже 18 коров и бык - это 19 голов, а нужно 100. Подбирать нужное количество из 200 хуже, чем из 20 или 10, поэтому сделаем замену, чтобы избавиться от t.
Из второго уравнения следует, что t=100-b-k.    (1)
Подставим значение t в первое уравнение:
10b+5k+0.5(100-b-k)=100;
10b+5k+50-0.5b-0.5k=100;
9.5b+4.5k=50;
19b+9k=100 ⇒ k=(100-19b)/9    (2)
Укрупненный алгоритм:
Перебираем b от 0 до 9 (10 нельзя, истратим все 100 рублей, а телят покупать надо!).
Для каждого b находим k по формуле (2). Если оно целочисленное, находим t по формуле (1). Решение найдено. Иначе перебор продолжается.

var
  b,k,t:integer;
  v:real;
    
begin
  for b:=0 to 9 do
    if (100-19*b) mod 9=0 then begin
      k:=(100-19*b) div 9;
      t:=100-b-k;
      Writeln('Быков ',b,', коров ',k,', телят ',t);
      break
      end;
end.

Решение
Быков 1, коров 9, телят 90
0,0(0 оценок)
Ответ:
казактілі3
казактілі3
20.05.2020 14:16

var

  A, B, K, R : longint;

begin

readln(A, B);

if (A mod 2 = 1) and (B mod 2 = 1) then

  writeln('-1');

if (A mod 2 = 0) and (B mod 2 = 0) and

     ((A div 2 <> B) or (B div 2 <> A)) then

  writeln('-1');

if (A mod 2 = 0) and (B mod 2 = 0) and

     ((A div 2 = B) or (B div 2 = A)) then

  if A > B then

     writeln(B, '0')

  else

     writeln('0', A);

if (A mod 2 = 1) and (B mod 2 = A) then begin

  A := A-1;

  B := B-2;

  if (A div 2 = B) or (B div 2 = A) then

     if A > B then

        writeln(B, '0')

     else

        writeln('0', A);

end;

if (B mod 2 = 1) and (A mod 2 = B) then begin

  B := B-1;

  A := A-2;

  if (B div 2 = A) or (A div 2 = B) then

     if B > A then

        writeln(B, '0')

     else

        writeln('0', A)

end;

end.

На Всё что могу.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота