Собрали для вас практические задачи по программированию Java для начинающих разработчиков с примерами решений. Это простые задачи с собеседований Java, которые позволят попрактиковаться или самостоятельно подготовиться к интервью.
Напишите программу, которая выводит на экран числа от 1 до 10.
Вариант решения
Самый простой вариант решения этой Java-задачи — использовать цикл for:
public class NumbersFromOneToTen { public static void main(String[] args) { for (int i = 1; i <= 10; i++) { System.out.print(i + » «); } } }
Напишите программу, которая находит сумму всех чисел от 1 до 100.
Вариант решения
В данном случае также вполне достаточно рассчитать сумму в цикле for:
public class SumOfNumbers { public static void main(String[] args) { int sum = 0; for (int i = 1; i <= 100; i++) { sum += i; } System.out.println(«Сумма чисел от 1 до 100: » + sum); } }
Найдите факториал заданного числа.
Вариант решения
Факториал числа — это произведение всех натуральных чисел от 1 до заданного числа. Например, факториал числа 5 равен 5 * 4 * 3 * 2 * 1 = 120.
В Java программу для нахождения факториала заданного числа можно написать с помощью цикла for или рекурсии. Ниже приведен пример программы с использованием цикла for:
public class FactorialCalculator { public static void main(String[] args) { int number = 5; // Заданное число, для которого мы хотим найти факториал int factorial = 1; // Изначально присваиваем факториалу значение 1 // Используем цикл for для нахождения факториала for (int i = 1; i <= number; i++) { factorial *= i; // Умножаем текущее значение факториала на текущее значение i } // Выводим результат System.out.println(«Факториал числа » + number + » равен » + factorial); } }
Запустив эту программу, вы получите вывод:
Факториал числа 5 равен 120
Обратите внимание, что для больших значений number, факториал может стать очень большим числом, превышающим максимальное значение типа данных. В таких случаях лучше использовать типы данных с большим диапазоном, такие как long или BigInteger.
Напишите проверку, является ли заданное число простым.
Вариант решения
Почему-то с этой задачей по Java у многих начинающих разработчиков на собеседованиях возникают проблемы. На самом деле, решение этой Java-задачи максимально простое:
public class PrimeNumberCheck { public static void main(String[] args) { int number = 17; boolean isPrime = true; for (int i = 2; i <= Math.sqrt(number); i++) { if (number % i == 0) { isPrime = false; break; } } System.out.println(number + » является простым числом: » + isPrime); } }
Программирование на Java с нуля: дорожная карта разработчика
tproger.ru
Отсортируйте массив по значению в порядке возрастания и убывания.
Вариант решения
Для сортировки массива по значению в порядке возрастания и убывания в Java можно использовать методы сортировки, доступные в Java Arrays классе. Для сортировки по возрастанию используется метод Arrays.sort(), а для сортировки по убыванию можно воспользоваться классом Comparator и методом Arrays.sort():
import java.util.Arrays; import java.util.Comparator; public class ArraySorting { public static void main(String[] args) { int[] array = {5, 2, 8, 1, 3}; // Сортировка массива по возрастанию Arrays.sort(array); System.out.println(«Массив, отсортированный по возрастанию:»); for (int num : array) { System.out.print(num + » «); } // Сортировка массива по убыванию Integer[] boxedArray = Arrays.stream(array).boxed().toArray(Integer[]::new); Arrays.sort(boxedArray, Comparator.reverseOrder()); System.out.println(«nМассив, отсортированный по убыванию:»); for (int num : boxedArray) { System.out.print(num + » «); } } }
Напишите на Java простой код, который переводит целое число в строку, при том что его можно применить в любой системе счисления.
Вариант решения
Решить эту простую задачу Java не составит труда. Для перевода целого числа в строку в любой системе счисления, можно воспользоваться методом Integer.toString() или Long.toString(), которые позволяют задать основание системы счисления вторым аргументом:
public class NumberToStringConverter { public static void main(String[] args) { int number = 123; int base = 16; // Задаем систему счисления (например, 16 для шестнадцатеричной) String numberAsString = convertToString(number, base); System.out.println(number + » в системе счисления » + base + «: » + numberAsString); } public static String convertToString(int number, int base) { return Integer.toString(number, base); } }
Напишите программу, которая инвертирует массив (меняет порядок элементов на противоположный).
Вариант решения public class ArrayReverse { public static void main(String[] args) { int[] array = {1, 2, 3, 4, 5}; int temp; int length = array.length; for (int i = 0; i < length / 2; i++) { temp = array; array = array[length — i — 1]; array[length — i — 1] = temp; } System.out.print(«Инвертированный массив: «); for (int element : array) { System.out.print(element + » «); } } }
Отсортируйте словарь по значению в порядке возрастания и убывания. Объясните решение.
Вариант решения
Да, эта практическая задача по Java похожа на задачу пятую. Однако!
Для сортировки словаря (Map) по значению в порядке возрастания и убывания в Java можно использовать интерфейс Comparator и методы сортировки, доступные в Java Collections Framework. Для этого нужно представить словарь в виде списка пар «ключ-значение» и затем отсортировать этот список на основе значений. Предположим, у нас есть словарь Map<String, Integer> с именами и их возрастами:
import java.util.*; public class DictionarySorting { public static void main(String[] args) { // Создаем и заполняем словарь имен и возрастов Map<String, Integer> dictionary = new HashMap<>(); dictionary.put(«Анна», 25); dictionary.put(«Петр», 32); dictionary.put(«Мария», 18); dictionary.put(«Иван», 40); dictionary.put(«Елена», 28); // Сортировка словаря по значению (возрастанию) List<Map.Entry<String, Integer>> sortedAscending = new ArrayList<>(dictionary.entrySet()); Collections.sort(sortedAscending, new Comparator<Map.Entry<String, Integer>>() { @Override public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { return o1.getValue().compareTo(o2.getValue()); } }); // Вывод отсортированного словаря (по возрастанию) System.out.println(«Словарь, отсортированный по возрастанию:»); for (Map.Entry<String, Integer> entry : sortedAscending) { System.out.println(entry.getKey() + «: » + entry.getValue()); } // Сортировка словаря по значению (убыванию) List<Map.Entry<String, Integer>> sortedDescending = new ArrayList<>(dictionary.entrySet()); Collections.sort(sortedDescending, new Comparator<Map.Entry<String, Integer>>() { @Override public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { return o2.getValue().compareTo(o1.getValue()); } }); // Вывод отсортированного словаря (по убыванию) System.out.println(«nСловарь, отсортированный по убыванию:»); for (Map.Entry<String, Integer> entry : sortedDescending) { System.out.println(entry.getKey() + «: » + entry.getValue()); } } }
Надеемся, вам понравилась подборка задач по Java. Пишите свои варианты решения, а также задачи, которые попадались на собеседованиях вам.
Также рекомендуем порешать задачи по Python и JavaScript.
Задача 1
Напишите программу, которая выводит на экран числа от 1 до 10.
Вариант решения
Самый простой вариант решения этой Java-задачи — использовать цикл for:
public class NumbersFromOneToTen { public static void main(String[] args) { for (int i = 1; i <= 10; i++) { System.out.print(i + » «); } } }
Задача 2
Напишите программу, которая находит сумму всех чисел от 1 до 100.
Вариант решения
В данном случае также вполне достаточно рассчитать сумму в цикле for:
public class SumOfNumbers { public static void main(String[] args) { int sum = 0; for (int i = 1; i <= 100; i++) { sum += i; } System.out.println(«Сумма чисел от 1 до 100: » + sum); } }
Задача 3
Найдите факториал заданного числа.
Вариант решения
Факториал числа — это произведение всех натуральных чисел от 1 до заданного числа. Например, факториал числа 5 равен 5 * 4 * 3 * 2 * 1 = 120.
В Java программу для нахождения факториала заданного числа можно написать с помощью цикла for или рекурсии. Ниже приведен пример программы с использованием цикла for:
public class FactorialCalculator { public static void main(String[] args) { int number = 5; // Заданное число, для которого мы хотим найти факториал int factorial = 1; // Изначально присваиваем факториалу значение 1 // Используем цикл for для нахождения факториала for (int i = 1; i <= number; i++) { factorial *= i; // Умножаем текущее значение факториала на текущее значение i } // Выводим результат System.out.println(«Факториал числа » + number + » равен » + factorial); } }
Запустив эту программу, вы получите вывод:
Факториал числа 5 равен 120
Обратите внимание, что для больших значений number, факториал может стать очень большим числом, превышающим максимальное значение типа данных. В таких случаях лучше использовать типы данных с большим диапазоном, такие как long или BigInteger.
Задача 4
Напишите проверку, является ли заданное число простым.
Вариант решения
Почему-то с этой задачей по Java у многих начинающих разработчиков на собеседованиях возникают проблемы. На самом деле, решение этой Java-задачи максимально простое:
public class PrimeNumberCheck { public static void main(String[] args) { int number = 17; boolean isPrime = true; for (int i = 2; i <= Math.sqrt(number); i++) { if (number % i == 0) { isPrime = false; break; } } System.out.println(number + » является простым числом: » + isPrime); } }
tproger.ru
Задача 5
Отсортируйте массив по значению в порядке возрастания и убывания.
Вариант решения
Для сортировки массива по значению в порядке возрастания и убывания в Java можно использовать методы сортировки, доступные в Java Arrays классе. Для сортировки по возрастанию используется метод Arrays.sort(), а для сортировки по убыванию можно воспользоваться классом Comparator и методом Arrays.sort():
import java.util.Arrays; import java.util.Comparator; public class ArraySorting { public static void main(String[] args) { int[] array = {5, 2, 8, 1, 3}; // Сортировка массива по возрастанию Arrays.sort(array); System.out.println(«Массив, отсортированный по возрастанию:»); for (int num : array) { System.out.print(num + » «); } // Сортировка массива по убыванию Integer[] boxedArray = Arrays.stream(array).boxed().toArray(Integer[]::new); Arrays.sort(boxedArray, Comparator.reverseOrder()); System.out.println(«nМассив, отсортированный по убыванию:»); for (int num : boxedArray) { System.out.print(num + » «); } } }
Задача 6
Напишите на Java простой код, который переводит целое число в строку, при том что его можно применить в любой системе счисления.
Вариант решения
Решить эту простую задачу Java не составит труда. Для перевода целого числа в строку в любой системе счисления, можно воспользоваться методом Integer.toString() или Long.toString(), которые позволяют задать основание системы счисления вторым аргументом:
public class NumberToStringConverter { public static void main(String[] args) { int number = 123; int base = 16; // Задаем систему счисления (например, 16 для шестнадцатеричной) String numberAsString = convertToString(number, base); System.out.println(number + » в системе счисления » + base + «: » + numberAsString); } public static String convertToString(int number, int base) { return Integer.toString(number, base); } }
Задача 7
Напишите программу, которая инвертирует массив (меняет порядок элементов на противоположный).
Вариант решения public class ArrayReverse { public static void main(String[] args) { int[] array = {1, 2, 3, 4, 5}; int temp; int length = array.length; for (int i = 0; i < length / 2; i++) { temp = array; array = array[length — i — 1]; array[length — i — 1] = temp; } System.out.print(«Инвертированный массив: «); for (int element : array) { System.out.print(element + » «); } } }
Задача 8
Отсортируйте словарь по значению в порядке возрастания и убывания. Объясните решение.
Вариант решения
Да, эта практическая задача по Java похожа на задачу пятую. Однако!
Для сортировки словаря (Map) по значению в порядке возрастания и убывания в Java можно использовать интерфейс Comparator и методы сортировки, доступные в Java Collections Framework. Для этого нужно представить словарь в виде списка пар «ключ-значение» и затем отсортировать этот список на основе значений. Предположим, у нас есть словарь Map<String, Integer> с именами и их возрастами:
import java.util.*; public class DictionarySorting { public static void main(String[] args) { // Создаем и заполняем словарь имен и возрастов Map<String, Integer> dictionary = new HashMap<>(); dictionary.put(«Анна», 25); dictionary.put(«Петр», 32); dictionary.put(«Мария», 18); dictionary.put(«Иван», 40); dictionary.put(«Елена», 28); // Сортировка словаря по значению (возрастанию) List<Map.Entry<String, Integer>> sortedAscending = new ArrayList<>(dictionary.entrySet()); Collections.sort(sortedAscending, new Comparator<Map.Entry<String, Integer>>() { @Override public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { return o1.getValue().compareTo(o2.getValue()); } }); // Вывод отсортированного словаря (по возрастанию) System.out.println(«Словарь, отсортированный по возрастанию:»); for (Map.Entry<String, Integer> entry : sortedAscending) { System.out.println(entry.getKey() + «: » + entry.getValue()); } // Сортировка словаря по значению (убыванию) List<Map.Entry<String, Integer>> sortedDescending = new ArrayList<>(dictionary.entrySet()); Collections.sort(sortedDescending, new Comparator<Map.Entry<String, Integer>>() { @Override public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { return o2.getValue().compareTo(o1.getValue()); } }); // Вывод отсортированного словаря (по убыванию) System.out.println(«nСловарь, отсортированный по убыванию:»); for (Map.Entry<String, Integer> entry : sortedDescending) { System.out.println(entry.getKey() + «: » + entry.getValue()); } } }
Надеемся, вам понравилась подборка задач по Java. Пишите свои варианты решения, а также задачи, которые попадались на собеседованиях вам.
Также рекомендуем порешать задачи по Python и JavaScript.