Показать сообщение отдельно
Старый 28.05.2014, 23:11   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Ну... если я правильно понял, что фермер покупает удобрения только целыми килограммами, а не, скажем, отвешивает с точностью до миллиграмма, и если устроит решение на Паскале, то так:
Код:
Var
 Super,Ammof,Price,Am1,Am2,Am3,Dif,
 Pr_min,S_min,A_min:Integer;

Function Max2(M1,M2:Integer):Integer;
begin
 if M1>M2 then Max2:=M1 else Max2:=M2;
end;

Function Max3(M1,M2,M3:Integer):Integer;
begin
 Max3:=Max2(Max2(M1,M2),M3);
end;

Begin    
 writeln('Super  Ammof  Price');
 Pr_min:=1000;
 for Super:=0 to 8 do
  begin
   Dif:=8-Super*1;
   If Dif<=0 then Am1:=0 else Am1:=(Dif div 5)+1;
   Dif:=21-Super*12;
   If Dif<=0 then Am2:=0 else Am2:=(Dif div 3)+1;
   Dif:=16-Super*4;
   If Dif<=0 then Am3:=0 else Am3:=(Dif div 4)+1;
   Ammof:=Max3(Am1,Am2,Am3);
   Price:=Super*5+Ammof*2;
   if Price<Pr_min then
    begin
     Pr_min:=Price;
     S_min:=Super;
     A_min:=Ammof;
    end;
   writeln(Super:3,Ammof:7,Price:8);
  end;
 writeln;
 Writeln('Result:');
 Writeln('Superfosfat: ',S_min,' kg');
 Writeln('    Ammofos: ',A_min,' kg');
 Writeln('      Price: ',Pr_min);
 readln
End.
Изображения
 
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070