Проще всего решать такие задачи, приведя всё к одной системе, проще всего 16ричной(легче переводить), хотя можно и в10ричную, но сложней.
Итак
a = 91h
b = 352(8) = 011 101 010b = 1110 1010b =EAh
ч1 = 1000 1001b = 89h
ч2 = 1000 1100b = 8Ch
ч3 = 1101 0111b = D7h
ч4 = 1111 1000b = F8h
Ну и всё, теперь ясно видно, что заданному условию удовлетворяет только ч3.
Потому, что
если расположить все числа в поряде возрастания, то получим
89h 8Ch 91h D7h EAh F8h
ч1 ч2 а ч3 b ч4
Вот теперь очевидно.
program raf105;
var
white,blue,red,x,y,z: integer;
w,b,r: boolean;
begin
writeln('Ввод:');
readln(white, blue, red, x, y, z);
repeat
w:= false;
b:= false;
r:= false;
if white >= x
then begin
white-= x;
blue+= 1;
end
else w:= true;
if blue >= y
then begin
blue-= y;
red+= 1;
end
else b:= true;
if red >= z
then begin
red-= z;
white+= 1;
end
else r:= true;
until w and b and r;
writeln('Вывод:');
writeln(white,' ', blue,' ', red);
end.
PascalABC 3.4.2
В Вашем задание напитки стоят в следующем порядке по предпочтению
'Кон Панна', 'Латте Маккиато', 'по-венски', 'Маккиато', 'Капучино', 'Эспрессо '
однако в приведённом примере [4, 4, 0] 'Капучино' почему то находится предпочтительнее 'Маккиато', что противоречит условию задачи. Ну да ладно.
Сделал на Python с применением рекурсии. Всё считается замечательно. Если будут вопросы - задавайте.
Объяснение:
Espresso=(1,0,0)
Capuchino=(1,3,0)
Maciato=(2,1,0)
Viena=(1,0,2)
LateMak=(1,2,1)
ConPanna=(1,0,1)
mss=(ConPanna, LateMak, Viena, Maciato, Capuchino, Espresso)
mssName=('Кон Панна', 'Латте Маккиато', 'по-венски', 'Маккиато', 'Капучино', 'Эспрессо ')
coff, milk, sl = map(int, input('Введите количество кофе_молока_сливок: ').split() )
def choose_coffee(ind, var, preference0, preference1, preference2):
if ((mss[ind][0] <= preference0) and (mss[ind][1]<=preference1) and (mss[ind][2]<=preference2)):
preference0 = preference0 - mss[ind][0]
preference1 = preference1 - mss[ind][1]
preference2 = preference2 - mss[ind][2]
print(mssName[ind])
var += 1
ind += 1
if ind<6:
choose_coffee(ind, var, preference0 , preference1, preference2)
if (var==0)and(ind==6):
print('Вариантов нет')
exit
choose_coffee(0, 0, coff, milk, sl)