#include <iostream>
#include <windows.h>
#include <conio.h>
#include <ctime>
int main()
{
srand(time(NULL));
const int n = 20;
double r = 0;
int a[n];
system("cls");
for (int i = 0; i < n; i++)
{
a[i] = rand() % 50;
std::cout << a[i] << " ";
r += 1. / a[i];
}
std::cout << std::endl;
r = 1. / r;
std::cout << "R: " << r << std::endl;
getch();
return 0;
}
Нам нужно найти наибольшее четырёхзначное число, для которого автомат вернет результат 157.
Давайте рассмотрим пример, чтобы понять, как работает автомат. Будем использовать число 9616.
Первый шаг: вычисляем суммы первой и второй, второй и третьей, третьей и четвертой цифр:
9 + 6 = 15
6 + 1 = 7
1 + 6 = 7
Второй шаг: отбрасываем наименьшую сумму - 7.
Третий шаг: записываем оставшиеся суммы в порядке невозрастания - 15, 7.
Итак, результат равен 157. Заметим, что это именно то значение, которое мы хотим получить.
Теперь давайте рассмотрим второй вариант - число 9707.
Первый шаг: вычисляем суммы первой и второй, второй и третьей, третьей и четвертой цифр:
9 + 7 = 16
7 + 0 = 7
0 + 7 = 7
Второй шаг: отбрасываем наименьшую сумму - 7.
Третий шаг: записываем оставшиеся суммы в порядке невозрастания - 16, 7.
Итак, результат равен 167. Заметим, что это не то значение, которое мы хотим получить (157).
Теперь объясним, почему правильный ответ 9616, а не 9707.
В этой задаче нам нужно найти наибольшее число, для которого автомат выдаст результат 157.
В числе 9616 сумма первых двух цифр равна 15, что больше, чем в числе 9707 (16). Таким образом, число 9616 более подходит для получения результата 157 по описанному алгоритму.
В числе 9707 сумма первой и второй цифры равна 16, что больше, чем в числе 9616 (15). Однако, в условии сказано, что отбрасывается наименьшая сумма. Таким образом, в числе 9707 отбрасывается именно сумма 7, а не 16. Это приводит к отличию в результатах.
Таким образом, наибольшее число, при вводе которого автомат выдаёт значение 157, это число 9616.