Задачи по java ответы
если захочется, то в несколько строк будет возвращать значения вместо их вывода. ну и можно это делать с любым типом данных
То чувство, когда ты умеешь поднять микросервисы в облаке, но не умеешь написать сортировку пузырьком. Уволюсь нахрен, пойду в 11 класс к ЕГЭ готовиться по информатике. Там много таких задач.
Честно, все решения ниже мне не понравились. В моем решении я не использовал 100 элементов, но это и не важно, оно универсальное для листов разных типов и любых размерностей.
public class Tes < public static void main(String[] args) < Listnumbers = new ArrayList<>(Arrays.asList(1,2,3,4,5,2,10,5)); System.out.println(findDuplicates(numbers)); List strings = new ArrayList<>(Arrays.asList("1", "st", "1", "5", "st", "10", "st")); System.out.println(findDuplicates(strings)); > private static Map findDuplicates(List list) < Mapduplicates = new HashMap<>(); for (T element:list) < if (Collections.frequency(list, element) >1) < duplicates.put(element, Collections.frequency(list, element)); >> return duplicates; > >
Решение для 4 задачи в один проход — слолжность меньше либо равна O(n) (равна — если дубликат окажется последним в массиве). Вставка в HashSet возвращает true в случае отсутствия элемента. Выполняется за O(1) (для целых чисел).
public class FindOneDuplicateInArray < private static final int ARRAY_LENGTH = 100; private static Integer findDuplicate(final int[] array) < Setholder = new HashSet<>(array.length); for (Integer i : array) < if (!holder.add(i)) return i; >return null; > public static void main(String[] args) < ThreadLocalRandom random = ThreadLocalRandom.current(); IntSupplier randomInt = () ->random.nextInt(1, ARRAY_LENGTH + 1); int[] array = IntStream.generate(randomInt) .distinct() .limit(ARRAY_LENGTH) .toArray(); int duplicate = randomInt.getAsInt(); array[randomInt.getAsInt()] = duplicate; Integer result = findDuplicate(array); System.out.printf("Duplicate is %s%nResult is %s%n", duplicate, result); System.out.println("Is result correct? " + Objects.equals(result, duplicate)); > >
List list = IntStream.range(1, 101).boxed().collect(Collectors.toList()); list.set(5, 100); list.sort(Comparator.naturalOrder()); for (int i = 0; i < list.size() - 1;i++) < if (list.get(i).equals(list.get(i+1))) < System.out.println(list.get(i)); break; >>
Я бы решил 4-ю задачу через словарь, подсчитывая повторения каждого элемента, и при первой же двойке сразу можно было бы сказать, какое число дубликат. Так не нужно было бы считать суммы, а в лучшем случае выполнение программы бы закончилось еще на 2-м элементе 🙂
Методы Java: упражнения, практика, решение
Упражнения по методу Java [16 упражнений с решением]
1. Напишите метод Java, чтобы найти наименьшее число среди трех чисел. Перейти к редактору
Тестовые данные:
Введите первое число: 25
Введите второе число: 37
Введите третье число: 29
Ожидаемый результат:
2. Напишите метод Java для вычисления среднего из трех чисел. Перейти к редактору
Тестовые данные:
Введите первое число: 25
Введите второе число: 45
Введите третье число: 65
Ожидаемый результат:
3. Напишите метод Java для отображения среднего символа строки. Перейти к редактору
Примечание: а) Если длина строки нечетная, будет два средних символа.
б) Если длина строки четная, будет один средний символ.
Тестовые данные:
Введите строку: 350
Ожидаемый результат:
Средний символ в строке: 5
4. Напишите метод Java для подсчета всех гласных в строке. Перейти к редактору
Тестовые данные:
Введите строку: w3resource
Ожидаемый результат:
Количество гласных в строке: 4
5. Напишите метод Java для подсчета всех слов в строке. Перейти к редактору
Тестовые данные:
Введите строку: быстрая коричневая лиса перепрыгивает через ленивую собаку.
Ожидаемый результат:
Количество слов в строке: 9
6. Напишите метод Java для вычисления суммы цифр в целом числе. Перейти к редактору
Тестовые данные:
Введите целое число: 25
Ожидаемый результат:
7. Напишите метод Java для отображения первых 50 пятиугольных чисел. Перейти к редактору
Примечание. Пятиугольное число — это фигурное число, которое расширяет концепцию треугольных и квадратных чисел до пятиугольника, но, в отличие от первых двух, шаблоны, используемые при построении пятиугольных чисел, не являются вращательно-симметричными.
Ожидаемый результат:
1 5 12 22 35 51 70 92 117 145 176 210 247 287 330 376 425 477 532 590 651 715 782 852 925 1001 1080 1162 1247 1335 1426 1520 1617 1717 1820 1926 2035 2147 2262 2380 2501 2625 2752 2882 3015 3151 3290 3432 3577 3725
8. Напишите метод Java для расчета будущей инвестиционной стоимости с заданной процентной ставкой в течение определенного количества лет. Перейти к редактору
Примерные данные (Ежемесячно составлено) и Вывод:
Введите сумму инвестиций: 1000
Введите процентную ставку: 10
Введите количество лет: 5
Years FutureValue 1 1104,71 2 1220,39 3 1348,18 4 1489,35 5 1645,31
9. Напишите метод Java для печати символов между двумя символами (т.е. от A до P). Перейти к редактору
Примечание: печатает 20 символов в строке
() * +, -. / 0 1 2 3 4 5 6 7 8 9:; ? @ ABCDEFGHIJKLMNOPQRSTU VWXYZ [] ^ _ `abcdefghijklmnopqrstu vwxyz
10. Напишите метод Java, чтобы проверить, является ли введенный пользователем год (целое число) високосным или нет. Перейти к редактору
11. Напишите метод Java, чтобы проверить, является ли строка действительным паролем. Перейти к редактору
Правила пароля:
Пароль должен содержать не менее десяти символов.
Пароль состоит только из букв и цифр.
Пароль должен содержать не менее двух цифр.
1. Пароль должен содержать не менее восьми символов. 2. Пароль состоит только из букв и цифр. 3. Пароль должен содержать как минимум две цифры Введите пароль (Вы соглашаетесь с вышеуказанными Условиями и положениями.): Abcd1234 Пароль действителен: abcd1234
12. Напишите метод Java (принимает число n в качестве входных данных), чтобы отобразить матрицу n-на-n. Перейти к редактору
Введите число: 10 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0
13. Напишите методы Java для вычисления площади треугольника. Перейти к редактору
Входная сторона-1: 10 Входная сторона-2: 15 Входная сторона-3: 20 Площадь треугольника составляет 72,6184377413890.
14. Напишите метод Java для создания области пятиугольника. Перейти к редактору
Введите количество сторон: 5 Введите сторону: 6 Площадь пятиугольника составляет 61,93718642120281
15. Напишите метод Java для отображения текущей даты и времени. Перейти к редактору
Текущая дата и время: среда, 25 января 2017 г. 7:47:43
16. Напишите метод Java, чтобы найти все двойные простые числа меньше 100. Перейти в редактор
(3, 5) (5, 7) (11, 13) (17, 19) (29, 31) (41, 43) (59, 61) (71, 73)
Редактор Java-кода
Еще не все !
Не отправляйте решение вышеупомянутых упражнений здесь, если вы хотите внести вклад, перейдите на соответствующую страницу упражнения.