Skip to main content

Задание 6

В этом задании нужно ответить на вопрос о том, как работает та или иная программа. В условии этих задач ЕГЭ даётся куча устаревших языков, которые в промышленности не используются уже десятилетия, а вот Java, один из трёх самых популярных языков, так и не могут добавить.

Поэтому примеры приведены на этих трёх языках. На ЕГЭ тем, кто пишет на Java, придётся переводить задание с языка С++ на Java самостоятельно. Благо, в таких задачах отличие от C++ заключается только в чтении и выводе.

Ниже приведён рейтинг TIOBE за февраль 2022 года, подробнее здесь.

xor

Некоторые задачи вообще требуют просто скомпилировать код. Если вам попалась такая, просто скопируйте её в соответствующий компилятор и запустите - сразу же получите ответ.

Общая идея решения

Если в задаче вам необходимо просто заменить чтение переменной на перебор её значений по циклу, а вывод - на проверку, удовлетворяет ли он заданному требованию. Если удовлетворяет, то вывести.

Пример 1

Задача

Определите, при каком наименьшем введённом значении переменной s программа выведет число 64

import java.util.Scanner;

public class Example1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int s = scanner.nextInt();
int n = 1;
while (s < 51) {
s = s + 5;
n = n * 2;
}
System.out.println(n);
}
}

В этом задании нам нужно найти минимальное допустимое число, поэтому просто начнём цикл for с нуля и запустим его большое число раз, например, 100000. Если программа ничего не найдёт из-за того, что искомое число больше(что вряд ли), просто увеличьте верхнюю границу значений i.

public class Example1 {
public static void main(String[] args) {
// перебираем значения переменной s
for (int i = 0; i < 100000; i++) {
int s = i;
int n = 1;
while (s < 51) {
s = s + 5;
n = n * 2;
}
// если ответ совпал
if (n == 64) {
// выводим необходимое значение i
System.out.println(i);
// завершаем перебор
break;
}
}
}
}

На консоль будет выведено:

21

Ответ: 21

Пример 2

Задача

При каком наибольшем введенном числе d после выполнения программы будет напечатано 55?

import java.util.Scanner;

public class Example2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int d = scanner.nextInt();
int n = 0;
int s = 0;
while (s <= 365) {
s = s + d;
n = n + 5;
}
System.out.println(n);
}
}

Т.к. требуется найти наибольшее число, то в этот раз мы пойдём от очень большого числа к нулю. Если встретим ответ, завершим цикл.

public class Example2 {
public static void main(String[] args) {
// перебираем значения переменной s
for (int i = 100000; i >=0 ; i--) {
int d = i;
int n = 0;
int s = 0;
while (s <= 365) {
s = s + d;
n = n + 5;
}
// если ответ совпал
if (n == 55) {
// выводим необходимое значение i
System.out.println(i);
// завершаем перебор
break;
}
}
}
}

На консоль будет выведено:

36

Задания для самостоятельного выполнения С++

Задания для самостоятельного выполнения Python