Информатика на пять О нас
 Добавить в избранное
5byte.ru
 Теория
 8 класс
 9 класс
 10 класс
 11 класс
Задания
 8 класс
 9 класс
 10 класс
 11 класс
Книги
Тесты
ЕГЭ
Turbo Pascal 7
 Описание
 Задачи
HTML
Рефераты

Задача 32.

Старинная задача. Сколько можно купить быков, коров и телят, если плата за быка 10 рублей, за корову - 5 рублей, за теленка - полтинник (0,5 рубля), если на 100 рублей надо купить 100 голов скота.

{Обозначим через b - количество быков; k - количество коров; t- количество телят. После этого можно записать два уравнения: 10b+5k+0.5t=100 и b+k+t=100. Преобразуем их: 20b+10k+t=200 и b+k+t=100. На 100 рублей можно купить:
- не более 10 быков, т. е. 0<=b<=10
- не более 20 коров, т. е. 0<=k<=20
- не более 200 телят, т. е. 0<=t<=200. Таким образом, получаем:
}

program prim3
  uses crt;
  var b, k, t: integer;
begin
  clrscr;
  for b:=0 to 10 do
    for k:=0 to 20 do
      for t:=0 to 200 do
        if(20*b+10*k+t=200) and (b+k+t=100)
        then
        writeln('Быков ', b, 'коров ', k ' телят ', t);
  readln;
end.

{Сколько раз будет проверяться условие в данной программе? Значение переменной b изменяется 11 раз (от 0 до 10), для каждого ее значения переменная k изменяется 21 раз, а для каждого значения переменной k переменная изменяется 201 раз. Таким образом, условие будет проверяться 11*21*201 раз. Но если известно количество быков и коров, то количество телят можно вычислить по формуле t=100-(b+k) и цикл по переменной t исключается.}

program рriт3b;
  uses crt;
  var b, к, t: integer;
begin
  clrscr;
  for b:=0 to 10 do
    for k: =0 to 20 do
      begin
        t:= 100-(b+k);
        if(20*b+10*k+t=200) then
        writeln('Быков ' ,b,,' коров ' , k,' телят' ,t);
      end;
  readln;
end.

{При этом решении условие проверяется 11*21 раз.}





 У Вас есть материал пишите нам
 
    Copyright © 2008    
  Top.Mail.Ru