Написать пост

Задачи по Java для начинающих

Держите Java задачи с ответами для начинающих разработчиков: подойдут как для практики, так и для подготовки к собеседованию.

Собрали для вас практические задачи по программированию 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);
    }
}
		

Задача 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[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. Пишите свои варианты решения, а также задачи, которые попадались на собеседованиях вам.

Также рекомендуем порешать задачи по Python и JavaScript.

Следите за новыми постами
Следите за новыми постами по любимым темам
26К открытий35К показов