Программирование 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-м элементе 🙂
🎅MnogoBlog
⛄как создать сайт на wordpress, настроить и оптимизировать wordpress
Примеры на Java (часть 2)
Здравствуйте, продолжаем решать задачи на Java языке, ниже преставлены 30 задач.
Задача 11: Программа выводит квадрат числа, введенного пользователем.
import java.util.Scanner; public class Test < public static void main(String[] args) < Scanner scan = new Scanner(System.in); System.out.println("Введите число:"); int a = scan.nextInt(); System.out.println("Введите число:"); int b = scan.nextInt(); scan.close(); int min; if (a < b) < min = a; System.out.println("Min=" + min); >if (a > b) < min = b; System.out.println("Min=" + min); >if (a == b) < System.out.println("a равно b"); >> >
Пользователь вводит число 5.
Программа выводит:
“Квадрат числа:25”
Задача 12: Введите в консоль два числа a и b. Программа определяет наименьшее из них, либо сообщает, что числа равны.
public class Test < public static void main(String[] args) < int mathematics = (int) (Math.random() * 10); int physics = (int) (Math.random() * 10); int english = (int) (Math.random() * 10); if (mathematics < 5) < System.out.println("Плохо"); >else < System.out.println("Хорошо"); >if (physics < 5) < System.out.println("Плохо"); >else < System.out.println("Хорошо"); >if (english < 5) < System.out.println("Плохо"); >else < System.out.println("Хорошо"); >> >
Пользователь вводит числа 5 и 7.
Программа выводит:
“Min=5”
Если Вы владелец гостиницы, то Вы можете существенно сократить операционные расходы по её обслуживанию, применив решение
С помощью оборудования компании “” быстро регулируется внутреннее освещение гостиниц, что увеличивает эффективность энергосбережения. Вы сможете контролировать доступ в номера, управлять климатом, следить за работой персонала и выполнять многие другие действия. Благодаря системе VLX Automation Вы повысите не только качество обслуживания клиентов, но и продуктивность ведения бизнеса!
Задача 13: Ученик сдал 3 экзамена и получил три оценки по 10 бальной шкале. Оценки по каждому экзамену формируются программой случайным образом. Программа оценивает, как готовился ученик к сдаче каждого экзамена – плохо или хорошо.
public class Test < public static void main(String[] args) < int first = (int) (Math.random() * 2); int second = (int) (Math.random() * 2); int third = (int) (Math.random() * 2); int result = 0; if (first == 1) < System.out.println("Попал"); result = result + 1; >else < System.out.println("Промахнулся"); result = result + 0; >if (second == 1) < System.out.println("Попал"); result = result + 1; >else < System.out.println("Промахнулся"); result = result + 0; >if (third == 1) < System.out.println("Попал"); result = result + 1; >else < System.out.println("Промахнулся"); result = result + 0; >System.out.println(result); > >
Программа выводит:
Плохо
Хорошо
Плохо
Задача 14: Спортсмен на соревнованиях стреляет три раза по трем мишеням. За каждое попадание дается один балл. Программа выводит результат каждого выстрела и общее количество баллов спортсмена. Результат каждого выстрела формируется программой случайным образом.
import java.util.Scanner; public class Test < public static void main(String[] args) < Scanner scan = new Scanner(System.in); System.out.println("Введите число:"); int a = scan.nextInt(); scan.close(); if (a < 0) < System.out.println(a + " < 0"); >if (a > 0) < System.out.println(a + " >0"); > if (a == 0) < System.out.println(a + " = 0"); >> >
Программа выводит:
Попал
Промахнулся
Попал
2
Задача 15: Введите в консоль число a. Программа определяет а больше, меньше или равно 0.
public class Test < public static void main(String[] args) < int petya = (int) (Math.random() * 3); int vasya = (int) (Math.random() * 3); if (petya == 0) < if (vasya == 0) < System.out.println("Ничья"); >if (vasya == 1) < System.out.println("Петя"); >if (vasya == 2) < System.out.println("Вася"); >> if (petya == 1) < if (vasya == 0) < System.out.println("Вася"); >if (vasya == 1) < System.out.println("Ничья"); >if (vasya == 2) < System.out.println("Петя"); >> if (petya == 2) < if (vasya == 0) < System.out.println("Петя"); >if (vasya == 1) < System.out.println("Вася"); >if (vasya == 2) < System.out.println("Ничья"); >> > >
Пользователь вводит число 3.
Программа выводит:
Задача 16: Вася и Петя играют в игру “Камень, ножницы, бумага”. Каждый из них показывает свою фигуру камень-0, ножницы-1, бумага-2. Программа определяет, кто из них выиграл.
Выбор каждого участника формируется случайным образом.
public class Test < public static void main(String[] args) < int petya = (int) (Math.random() * 3); int vasya = (int) (Math.random() * 3); if (petya == 0) < if (vasya == 0) < System.out.println("Ничья"); >else if (vasya == 1) < System.out.println("Петя"); >else if (vasya == 2) < System.out.println("Вася"); >> else if (petya == 1) < if (vasya == 0) < System.out.println("Вася"); >else if (vasya == 1) < System.out.println("Ничья"); >else if (vasya == 2) < System.out.println("Петя"); >> else if (petya == 2) < if (vasya == 0) < System.out.println("Петя"); >else if (vasya == 1) < System.out.println("Вася"); >else if (vasya == 2) < System.out.println("Ничья"); >> > >
Задача 17: Программа в случайном порядке выдает дни недели.
public class Test < public static void main(String[] args) < int week = (int) (Math.random() * 7); if (week == 0) < System.out.println("Понедельник"); >else if (week == 1) < System.out.println("Вторник"); >else if (week == 2) < System.out.println("Среда"); >else if (week == 3) < System.out.println("Четверг"); >else if (week == 4) < System.out.println("Пятница"); >else if (week == 5) < System.out.println("Суббота"); >else if (week == 6) < System.out.println("Воскресенье"); >> >
Программа выводит:
Суббота.
Задача 18: Программа в случайном порядке выдает сезоны года.
public class Test < public static void main(String[] args) < int week = (int) (Math.random() * 4); if (week == 0) < System.out.println("Зима"); >else if (week == 1) < System.out.println("Весна"); >else if (week == 2) < System.out.println("Лето"); >else if (week == 3) < System.out.println("Осень"); >> >
Задача 19: Ученик сдал экзамен. Программа выводит результаты экзамена и дает свою оценку знанию ученика. Оценка определяется программой случайным образом.
public class Test < public static void main(String[] args) < int exam = (int) (Math.random() * 10 + 1); if (exam < 3) < System.out.println(exam + "-ужасно"); >else if (exam < 5) < System.out.println(exam + "-плохо"); >else if (exam < 7) < System.out.println(exam + "-удовлетворительно"); >else if (exam < 9) < System.out.println(exam + "-хорошо"); >else < System.out.println(exam + "-отлично"); >> >
Программа выводит:
10-отлично
Задача 20: Введите в консоль число. Программа определяет число больше, меньше или равно 0.
import java.util.Scanner; public class Test < public static void main(String[] args) < Scanner scan = new Scanner(System.in); System.out.println("Введите число:"); int a = scan.nextInt(); scan.close(); if (a < 0) < System.out.println(a + " < 0"); >else if (a > 0) < System.out.println(a + " >0"); > else if (a == 0) < System.out.println(a + " = 0"); >> >
Пользователь вводит число 7.
Программа выводит:
7 > 0
Задача 21: Программа в случайном порядке выдает дни недели.
Программа выводит:
Суббота.
Задача 22: Программа выдает в случайном порядке сезоны года.
Задача 23: Ученик сдал экзамен. Внесите с консоли оценку ученику по 10-ти бальной системе. Программа выдаст свою оценку ученику.
import java.util.Scanner; public class Test < public static void main(String[] args) < Scanner scan = new Scanner(System.in); System.out.println("Введите число:"); int a = scan.nextInt(); scan.close(); switch (a) < case 1: case 2: System.out.println("Отметка:" + a + "-ужасно"); break; case 3: case 4: System.out.println("Отметка:" + a + "-плохо"); break; case 5: case 6: System.out.println("Отметка:" + a + "-удовлетворительно"); break; case 7: case 8: System.out.println("Отметка:" + a + "-хорошо"); break; case 9: case 10: System.out.println("Отметка:" + a + "-отлично"); break; default: System.out.println("Неверная отметка"); >> >
Программа выводит:
Отметка:7-хорошо
Задача 24: Программа выдает в случайном порядке сезон года и месяц.
public class Main < public static void main(String[] args) < int season = (int) (Math.random() * 4); int month = (int) (Math.random() * 3); switch (season) < case 0: System.out.print("Зима-"); switch (month) < case 0: System.out.println("Декабрь"); break; case 1: System.out.println("Январь"); break; case 2: System.out.println("Февраль"); break; >break; case 1: System.out.print("Весна-"); switch (month) < case 0: System.out.println("Март"); break; case 1: System.out.println("Апрель"); break; case 2: System.out.println("Май"); break; >break; case 2: System.out.print("Лето-"); switch (month) < case 0: System.out.println("Июнь"); break; case 1: System.out.println("Июль"); break; case 2: System.out.println("Август"); break; >break; case 3: System.out.print("Осень-"); switch (month) < case 0: System.out.println("Сентябрь"); break; case 1: System.out.println("Октябрь"); break; case 2: System.out.println("Ноябрь"); break; >> > >
Программа выводит:
Осень-Сентябрь
Задача 25: Пользователь вводит число от 1 до 5. Программа выдает это число прописью либо сообщает, что пользователь ввел неверное число.
import java.util.Scanner; public class Main < public static void main(String[] args) < Scanner scan = new Scanner(System.in); System.out.println("Введите число:"); int a = scan.nextInt(); scan.close(); switch (a) < case 1: System.out.println("Один"); break; case 2: System.out.println("Два"); break; case 3: System.out.println("Три"); break; case 4: System.out.println("Четыре"); break; case 5: System.out.println("Пять"); break; default: System.out.println("Неверное число"); >> >
Пользователь вводит число 5.
Программа выводит:
Задача 26: Программа выдает абсолютное значение числа, введенного пользователем.
import java.util.Scanner; public class Test < public static void main(String[] args) < Scanner scan = new Scanner(System.in); System.out.println("Введите число:"); int a = scan.nextInt(); scan.close(); int k = a < 0 ? -a : a; System.out.println("Абсолютное значение " + a + " равно " + k); >>
Пользователь вводит число -7.
Программа выдает ответ
Абсолютное значение -7 равно 7
Задача 27: Программа выводит минимальное число из двух чисел, введенных пользователем.
import java.util.Scanner; public class Main < public static void main(String[] args) < Scanner scan = new Scanner(System.in); System.out.println("Введите число:"); int a = scan.nextInt(); System.out.println("Введите число:"); int b = scan.nextInt(); scan.close(); int k = a < b ? a : b; System.out.println("Минимальное число:" + k); >>
Пользователь вводит числа 5 и -4.
Программа выводит:
Минимальное число:-4
Задача 28: Программа сообщает, кто сейчас дома: папа, мама или сын. Ответ формируется случайным образом.
Программа выводит:
Папа дома
Мама дома
Сына дома нет
Задача 29: Программа случайным образом выводит порядковый номер дня недели и сообщает рабочий этот день или выходной.
Программа выводит:
Число 2.
Сегодня рабочий день.
Задача 30: Спортсмен на соревнованиях стреляет три раза по трем мишеням. За каждое попадание дается один балл. Программа выводит результаты каждого выстрела и общее количество баллов спортсмена. Результат каждого выстрела формируется программой случайным образом.
Программа выводит:
Попал
Промахнулся
Попал
2
Задача 31: Программа выводит сезон года в зависимости от номера месяца. Месяц выбирается случайным образом.
public class Year < // Создаем класс Year public static void main(String[] args) < int month = (int) ((Math.random() * 12 + 1)); String s; if (month == 1 || month == 2 || month == 12) < s = "Зима"; >if (month == 3 || month == 4 || month == 5) < s = "Весна"; >if (month == 6 || month == 7 || month == 8) < s = "Лето"; >else s = "Осень"; System.out.println(s); > >
Задача 32: Ученик сдал экзамен. Программа выводит результаты экзамена и дает свою оценку знаниям ученика. Оценка определяется программой случайным образом.
public class Game < // объявляется класс Game public static void main(String[] args) < int exam = (int) (Math.random() * 10 + 1); if (exam < 3) < System.out.println(exam + "-ужасно"); >if (3 if (5 if (7 if (9 > >
Возможный ответ:
Программа выводит:
10-отлично
Задача 33: Вася и Петя играют в игру “Камень, ножницы, бумага”. Каждый из них показывает свою фигуру камень-0, ножницы-1, бумага-2. Программа определяет, кто из них выиграл.Выбор каждого участника формируется случайным образом.
public class Game < // объявляется класс Game public static void main(String[] args) < int petya = (int) (Math.random() * 3); int vasya = (int) (Math.random() * 3); String s; if (petya == 0 && vasya == 0 || petya == 1 && vasya == 1 || petya == 2 && vasya == 2) < s = "Ничья"; >else if (petya == 0 && vasya == 1 || petya == 1 && vasya == 2 || petya == 2 && vasya == 0) < s = "Петя"; >else < s = "Вася"; >System.out.println(s); > >
Задача 34: Дан прямоугольный треугольник со сторонами 3, 4 и 5 см. Программа определяет гипотенузу и выводит площадь треугольника.
Задача 35: Программа определяет большее из двух чисел, введенных пользователем, или выдает сообщение, что числа равны.
import java.util.Scanner;// импортируем класс Scanner public class Task < public static void main(String[] args) < Scanner sc = new Scanner(System.in); System.out.println("Введите число:"); int a = sc.nextInt(); System.out.println("Введите число:"); int b = sc.nextInt(); sc.close(); if (a != b) < if (a >b) < System.out.println(a + " больше " + b); >else < System.out.println(b + " больше " + a); >> else < System.out.println("Числа равны"); >> >
Пользователь вводит число 7 и 1.
Программа выводит:
7 больше 1
Задача 36: Программа суммирует числа от 1 до 10.
public class Task < public static void main(String[] args) < int i = 0; int sum = 0; do < sum = sum + i; i = i + 1; >while (i != 11); System.out.println(sum); > >
Задача 37: Машина загадывает число от 1 до 10. Пользователь пытается угадать число. Пользователь повторяет попытки пока не угадает.
import java.util.Scanner; public class Game < public static void main(String[] args) < Scanner sc = new Scanner(System.in); int a; int result = (int) (Math.random() * 10 + 1); do < System.out.println("Угадайте число:"); a = sc.nextInt(); >while (result != a); System.out.println("Ответ:" + a); sc.close(); > >
Программа выводит: Угадайте число:
Пользователь вводит число: 4
Программа выводит: Угадайте число:
Пользователь вводит число: 7
Программа выводит: Угадайте число:
Пользователь вводит число: 9
Программа выводит: Угадайте число:
Пользователь вводит число: 1
Программа выводит: Угадайте число:
Пользователь вводит число: 2
Программа выводит: Ответ:2
Задача 38: Программа считает количество повторов цикла от 0 до числа, введенного пользователем.
import java.util.Scanner; public class Test < public static void main(String[] args) < Scanner sc = new Scanner(System.in); System.out.println("Введите число:") int a = sc.nextInt(); sc.close(); int i = 0; do < System.out.println("Повтор:" + i); i = i + 1; >while (i < (a + 1)); >>
Пользователь вводит число 3.
Программа выводит:
Повтор:0
Повтор:1
Повтор:2
Повтор:3
Задача 39: Программа считает квадраты чисел от 1 до числа, введенного пользователем. Число, введенное пользователем, не должно выходить за рамки диапозона от 1 до 10.
import java.util.Scanner; public class Task < public static void main(String[] args) < Scanner sc = new Scanner(System.in); System.out.println("Введите число:"); int a = sc.nextInt(); sc.close(); if (a < 1 || a >10) < System.out.println("Введено неправильное число"); >else < int i = 1; do < System.out.println("Квадрат " + i + " равен " + (i * i)); i = i + 1; >while (i < (a + 1)); >> >
Пользователь вводит число 3.
Программа выводит:
Квадрат 1 равен 1
Квадрат 2 равен 4
Квадрат 3 равен 9