Держите Java задачи с ответами для начинающих разработчиков: подойдут как для практики, так и для подготовки к собеседованию.
53К открытий99К показов
Собрали для вас практические задачи по программированию Java для начинающих разработчиков с примерами решений. Это простые задачи с собеседований Java, которые позволят попрактиковаться или самостоятельно подготовиться к интервью.
Задача 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);
}
}
Отсортируйте массив по значению в порядке возрастания и убывания.
Вариант решения
Для сортировки массива по значению в порядке возрастания и убывания в 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[i];
array[i] = 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. Пишите свои варианты решения, а также задачи, которые попадались на собеседованиях вам.