Напишите программу, которая в последовательности натуральных чисел определяет минимальное число, оканчивающееся на 4. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, оканчивающееся на 4. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число — минимальное число, оканчивающееся на 4. НА C++!!!
Ответы
Ответ:
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int min = 30001;
for (int i = 0; i < n; ++i) {
int next_number;
cin >> next_number;
if (abs(next_number) % 10 == 4 && min > next_number)
min = next_number;
}
cout << min;
}
Объяснение:
Так как по условию числа не превышают 30000, то возьмем за минимум (переменная min) любое большее число, например 30001. Далее в переменную min будет пошагово сохраняться минимальное число с 4 на конце. То, что число оканчивается на 4 определяется взятием числа по модулю 10. (abs в условии - перестраховка для отрицательных чисел, чтобы компьютер корректно брал остаток для чисел, как -24, например). Алгоритм в двух словах - предполагаем что ответ 30001 и сохраняем его в переменную min; считываем числа по очереди, проверяем, заканчивается ли очередное число на 4, проверяем, меньше ли он, чем min, и, если обе проверки прошли, обновляем min, записывая туда текущее число. В конце в min будет лежать ответ, который мы и выводим.