Давайте подробно разберем задачу и решим её на языке C++.
Задача:
Нужно определить, в какие дни месяца количество выполненных дел было меньше 5. Для этого у нас есть:
- Количество дней в месяце
n. - Массив чисел — количество дел, выполненных в каждый из этих дней.
Требуется вывести номера дней, в которые количество дел было меньше 5, либо вывести "Great job!", если таких дней не было.
Шаги решения:
- Считать число
n. - Считать массив из
nцелых чисел. - Пройтись по всему массиву и проверить каждый день:
- Если дел выполнено менее 5, запоминаем номер этого дня.
- После проверки, если есть такие дни, вывести их номеров через пробел.
- Если таких дней не оказалось, вывести
"Great job!".
Пример:
Ввод:
7
3 5 4 6 2 7 1
Вывод:
1 3 5 7
Потому что в эти дни выполнено менее 5 дел.
Реализация на C++:
#include <iostream>
#include <vector>
int main() {
int n;
std::cin >> n; // Считываем количество дней
std::vector<int> tasks(n);
// Считываем количество дел за каждый день
for (int i = 0; i < n; ++i) {
std::cin >> tasks[i];
}
// Вектор для хранения номеров дней, где не достигнута цель
std::vector<int> bad_days;
// Проверяем каждый день
for (int i = 0; i < n; ++i) {
if (tasks[i] < 5) {
// Нумерация дней с 1
bad_days.push_back(i + 1);
}
}
// Выводим результат
if (bad_days.empty()) {
std::cout << "Great job!" << std::endl;
} else {
for (size_t i = 0; i < bad_days.size(); ++i) {
std::cout << bad_days[i];
if (i != bad_days.size() - 1) {
std::cout << " ";
}
}
std::cout << std::endl;
}
return 0;
}
Если нужно, я могу объяснить каждую строку кода более подробно!