На­пи­ши­те про­грам­му, ко­то­рая в по­сле­до­ва­тель­но­сти на­ту­раль­ных чисел опре­де­ля­ет ми­ни­маль­ное число, окан­чи­ва­ю­ще­е­ся на 4. Про­грам­ма по­лу­ча­ет на вход ко­ли­че­ство чисел в по­сле­до­ва­тель­но­сти, а затем сами числа. В по­сле­до­ва­тель­но­сти все­гда име­ет­ся число, окан­чи­ва­ю­ще­е­ся на 4. Ко­ли­че­ство чисел не пре­вы­ша­ет 1000. Введённые числа не пре­вы­ша­ют 30 000. Про­грам­ма долж­на вы­ве­сти одно число — ми­ни­маль­ное число, окан­чи­ва­ю­ще­е­ся на 4. НА C++!!!​

Ответы

Ответ дал: irka1804
2

Ответ:

#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 будет лежать ответ, который мы и выводим.

Вас заинтересует