Задача:
Напишите программу, которая создает список случайных чисел и выводит только те, которые делятся на 3. Java.
План:
- Алгоритм решения
- Код программы
- Примеры входных данных и ожидаемых результатов
- Объяснение кода программы
- Блок-схема
Алгоритм решения:
-
Создание списка случайных чисел:
- Метод
generateRandomNumbers
принимает три параметра: количество чисел, минимальное и максимальное значение. - Создается пустой список
numbers
. - В цикле генерируются случайные числа с помощью
Random.nextInt()
и добавляются в список. - Возвращается заполненный список случайных чисел.
- Метод
-
Фильтрация чисел, делящихся на 3:
- Метод
filterDivisibleByThree
принимает список чисел. - Создается новый пустой список
divisibleByThree
. - Перебираются все числа из входного списка.
- Если число делится на 3 без остатка (проверка
number % 3 == 0
), оно добавляется в новый список. - Возвращается список чисел, делящихся на 3.
- Метод
-
Основной алгоритм:
- Генерируется список из 20 случайных чисел от 1 до 100.
- Список фильтруется, оставляя только числа, делящиеся на 3.
- Выводятся на экран исходный список случайных чисел и отфильтрованный список.
Код программы на языке Java:
Код Java
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class RandomNumbersDivisibleByThree {
public static void main(String[] args) {
List<Integer> numbers = generateRandomNumbers(20, 1, 100);
List<Integer> divisibleByThree = filterDivisibleByThree(numbers);
System.out.println("Random numbers: " + numbers);
System.out.println("Numbers divisible by 3: " + divisibleByThree);
}
public static List<Integer> generateRandomNumbers(int count, int min, int max) {
List<Integer> numbers = new ArrayList<>();
Random random = new Random();
for (int i = 0; i < count; i++) {
numbers.add(random.nextInt(max - min + 1) + min);
}
return numbers;
}
public static List<Integer> filterDivisibleByThree(List<Integer> numbers) {
List<Integer> divisibleByThree = new ArrayList<>();
for (Integer number : numbers) {
if (number % 3 == 0) {
divisibleByThree.add(number);
}
}
return divisibleByThree;
}
}
Примеры входных данных и ожидаемых результатов:
Пример 1:
Входные данные: [14, 27, 5, 9, 33, 78, 42, 61, 18, 3, 95, 66, 12, 50, 87, 21, 39, 72, 1, 54]
Ожидаемый результат: [27, 9, 33, 42, 18, 3, 66, 12, 21, 39, 72, 54]
Пример 2:
Входные данные: [7, 22, 36, 48, 15, 91, 63, 2, 81, 30, 55, 99, 6, 74, 45, 19, 87, 51, 93, 60]
Ожидаемый результат: [36, 48, 15, 63, 81, 30, 99, 6, 45, 51, 93, 60]
Пример 3:
Входные данные: [11, 25, 38, 42, 57, 69, 73, 84, 96, 5, 17, 31, 49, 62, 75, 88, 93, 102, 114, 127]
Ожидаемый результат: [42, 69, 84, 96, 75, 102, 114]
Объяснение кода программы:
-
Импорт необходимых классов:
Импортируются классы для работы со списками (ArrayList и List) и генерации случайных чисел (Random).import java.util.ArrayList; import java.util.List; import java.util.Random;
-
Объявление основного класса:
Создается публичный класс с именем RandomNumbersDivisibleByThree.public class RandomNumbersDivisibleByThree {
-
Метод main:
Основной метод программы. Генерирует список из 20 случайных чисел от 1 до 100, фильтрует числа, делящиеся на 3, и выводит результаты.public static void main(String[] args) { List<Integer> numbers = generateRandomNumbers(20, 1, 100); List<Integer> divisibleByThree = filterDivisibleByThree(numbers); System.out.println("Random numbers: " + numbers); System.out.println("Numbers divisible by 3: " + divisibleByThree); }
-
Метод generateRandomNumbers:
Генерирует список случайных чисел заданного количества в указанном диапазоне.public static List<Integer> generateRandomNumbers(int count, int min, int max) { List<Integer> numbers = new ArrayList<>(); Random random = new Random(); for (int i = 0; i < count; i++) { numbers.add(random.nextInt(max - min + 1) + min); } return numbers; }
-
Метод filterDivisibleByThree:
Фильтрует входной список чисел, оставляя только те, которые делятся на 3 без остатка.public static List<Integer> filterDivisibleByThree(List<Integer> numbers) { List<Integer> divisibleByThree = new ArrayList<>(); for (Integer number : numbers) { if (number % 3 == 0) { divisibleByThree.add(number); } } return divisibleByThree; }