последовательности целых чисел определяет произведение двух наибольших чисел. Программа получает на вход целые числа, количество введённых чисел не известно, но не больше 1000. Последовательность чисел заканчивается числом 0. Введённые числа по модулю не превышают 30 000.
Алгоритм. Использовать алгоритм задачи 4.7. Наибольшее произведение могут дать как 2 положительных числа, так и 2 отрицательных. В последовательности находим 2 максимальных и 2 минимальных числа, и определяем наибольшее произведение.
4.9. Напишите программу, которая из введенного с клавиатуры натурального числа удаляет все цифры 5. Программа получает на вход целое число, не превышающее 30 000. Программа должна вывести одно число – число, полученное из исходного, после удаления всех цифр 5 из его записи.
Алгоритм. Делим число до тех пор, пока оно не станет =0. Если цифра числа не равна 5 - оставляем ее. Используем позиционность 10 СС. Особенность: оставшиеся цифры должны сохранять последовательность. k=k*10 отвечает за сдвиг числа влево каждый раз на разряд, а - z*k цифра z в своем разряде. Пример. Дано число 1253, получим новое n = 1 +2 *10 + 1* 100 = 123.
4.10. Напишите программу, которая в последовательности целых чисел находит наименьшие порядковые номера двух соседних чисел, произведение которых меньше 50. Программа должна вывести 2 числа (разделенных пробелом) – порядковые номера двух соседних чисел, произведение которых меньше 50.
Алгоритм. Для решения этой задачи лучше использовать цикл do…while. Находим произведение двух чисел – предыдущего и текущего. Если произведение чисел > 50, опять переходим к вводу нового числа, до тех пор - пока оно будет < 50. Также считаем количество введенных чисел, чтобы определить порядковые номера двух соседних чисел, дающих такой результат.
Для просмотра ответа щелкните мышью
Для просмотра ответа щелкните мышью
Для просмотра ответа щелкните мышью
C4_8
C4_9
C4_10