12Куки35
15.04.2022 19:44

Билеты на метро
Давным-давно цены на билеты в московском метро были такими:

1 поездка — 15 рублей,
5 поездок — 70 рублей,
10 поездок — 125 рублей,
20 поездок — 230 рублей,
60 поездок — 440 рублей.
Пассажир планирует совершить n поездок. Определите, сколько билетов каждого вида он должен приобрести, чтобы суммарное количество оплаченных поездок было не меньше n, а общая стоимость приобретенных билетов — минимальна.

Входные данные

Программа получает на вход одно натуральное число n, не превосходящее 10000.

Выходные данные

Программа должна вывести пять целых чисел: количество билетов на 1,5,10,20,60 поездок, которое необходимо приобрести. Если для какого-то данного n существует несколько приобретения билетов одинаковой суммарной стоимости, необходимо вывести ту комбинацию билетов, которая дает большее число поездок.
Есть такая задача, можите надо написать на python 3, что с моей не так, при n=59 выдаёт неправильный ответ:
n=int(input())
if n%60==0:
e=n//60
else:
e=n//60
if (n-e*60)%20==0:
d=(n-e*60)//20
else:
d=(n-e*60)//20
if (n-e*60-d*20)%10==0:
c=(n-e*60-d*20)//10
else:
c=(n-e*60-d*20)//10
if (n-e*60-d*20-c*10)%5==0:
b=(n-e*60-d*20-c*10)//5
else:
b=(n-e*60-d*20-c*10)//5
a=(n-e*60-d*20-c*10-b*5)//1
print(a,b,c,d,e)
Программа.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Никейти
31.10.2020 02:12
');
    else writeln('вы должны ввести число от 1 до 11')
  end;
  writeln('');
end.

 

 

 

program Phone;
var day:integer; time:real; week:array[1..7] of string;
begin
  week[7]:='Воскресенье';
  week[6]:='Суббота';
  week[5]:='Пятница';
  week[4]:='Четверг';
  week[3]:='Среда';
  week[2]:='Вторник';
  week[1]:='Понедельник';
  write('введите длительность разговора в минутах ');
  readln(time);
  write('введите номер дня недели ');
  readln(day);
  writeln(' alphaeus is thinking...  ');
  case day of
    '1'..'5':
       begin
         writeln(week[day]);
         writeln('Сумма без скидки - ', 2.3*time);
         writeln('Сумма скидкой - ', 0.8*2.3*time);
         writeln('Скидка не предоставляется');
       end;
    '6','7':
       begin
         writeln(week[day]);
         writeln('Сумма без скидки - ', 2.3*time);
         writeln('Сумма скидкой - ', 0.8*2.3*time);
         writeln('Вам предоставлена скидка!');
       end;
    else writeln('вы ввели неправильный номер дня недели')
  end;
  writeln'');
end.

0,0(0 оценок)
Ответ:
Вика1774574747
31.10.2020 02:12
// PascalABC.NET 3.2, сборка 1381 от 04.02.2017
// Внимание! Если программа не работает, обновите версию!

begin
  Writeln('Вычисление стоимости телефонного разговора');
  Writeln('Введите исходные данные');
  var Sm:=ReadReal('Стоимость минуты разговора, руб.');
  var M:=ReadInteger('Длительность разговора (целое количество минут)');
  var Day:=ReadInteger('День недели (1-понедельник, ... 7-воскресенье)');
  var S:=Sm*M*(Day in [1..5]?1.0:0.8);
  Writeln('Стоимость разговора, руб ',s:0:2)
end.

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