Билет на одну поездку в автобусе стоит 90 тенге, билет на 10 поездок стоит 850 тенге, билет на 60 поездок стоит 5000 тенге. Пассажир планирует совершить N поездок. Определите, сколько билетов каждого вида он должен приобрести, чтобы суммарное количество оплаченных поездок было не меньше N, а общая стоимость приобретенных билетов - минимальна.
Формат входных данных:
На входе программа принимает одно число N - количество поездок.
Формат выходных данных:
На экран выводится три целых числа, равные необходимому количеству билетов на 1, на 10 и на 60 поездок.
на экран должно вывести :
3
1
0
программу нужно решить с помощью if (c++) пожалуйста помогите
Приложения:
![](https://st.uroker.com/files/1b1/1b133207d8adbb6d5f82cabe11c52401.png)
Ответы
Ответ дал:
0
Для решения задачи можно использовать цикл while и перебирать все возможные варианты покупки билетов, подсчитывая при каждом варианте стоимость и количество поездок, которые покрываются билетами. Но для данной задачи можно также использовать более простой и эффективный алгоритм.
Количество билетов на 60 поездок всегда минимально, поэтому пассажир должен приобрести все возможные билеты на 60 поездок. Затем необходимо определить, сколько дополнительных поездок осталось совершить, и купить соответствующее количество билетов на 10 поездок. Если после этого остались еще неоплаченные поездки, то нужно купить соответствующее количество билетов на 1 поездку.
Ниже приведен код на языке C++ для решения данной задачи с использованием if-конструкции:
#include
using namespace std;
int main() {
int n;
cin >> n;
int n60 = n / 60;
int n10 = (n - n60 * 60) / 10;
int n1 = n - n60 * 60 - n10 * 10;
if (n1 > 0) {
n10++;
}
if (n10 > 6) {
n60++;
n10 = 0;
}
cout << n1 << endl;
cout << n10 << endl;
cout << n60 << endl;
return 0;
}
На вход программе подается количество поездок N. Затем происходит вычисление необходимого количества билетов на 60, 10 и 1 поездок и вывод результатов на экран.
Количество билетов на 60 поездок всегда минимально, поэтому пассажир должен приобрести все возможные билеты на 60 поездок. Затем необходимо определить, сколько дополнительных поездок осталось совершить, и купить соответствующее количество билетов на 10 поездок. Если после этого остались еще неоплаченные поездки, то нужно купить соответствующее количество билетов на 1 поездку.
Ниже приведен код на языке C++ для решения данной задачи с использованием if-конструкции:
#include
using namespace std;
int main() {
int n;
cin >> n;
int n60 = n / 60;
int n10 = (n - n60 * 60) / 10;
int n1 = n - n60 * 60 - n10 * 10;
if (n1 > 0) {
n10++;
}
if (n10 > 6) {
n60++;
n10 = 0;
}
cout << n1 << endl;
cout << n10 << endl;
cout << n60 << endl;
return 0;
}
На вход программе подается количество поездок N. Затем происходит вычисление необходимого количества билетов на 60, 10 и 1 поездок и вывод результатов на экран.
Ответ дал:
0
#include <iostream>
using namespace std;
int main()
{
int N;
int ten = 0;
int sixty = 0;
cin >> N;
if (N > 60) {
sixty = N / 60;
N -= sixty * 60;
};
if (N > 10) {
ten = N / 10;
N -= ten * 10;
};
cout << N << endl << ten << endl << sixty << endl;
return 0;
}
Пример работы кода на фото
Приложения:
![](https://st.uroker.com/files/0ff/0ff8982d83c19af779c50d2f8ad57ba1.png)
Вас заинтересует
3 месяца назад
3 месяца назад
4 месяца назад
4 месяца назад
1 год назад
1 год назад
7 лет назад