Условие задачи Взята с сайта. Мюллер много раз пытался поймать Штирлица с поличным, но тот всё время выкручивался. Как-то раз Штирлиц просматривал электронную почту. В это время незаметно вошел Мюллер и увидел, как у него на экране появился бессмысленный набор символов. «Шифровка», — подумал Мюллер. «UTF-8», — подумал Штирлиц. Известно, что Штирлиц шифрует текст следующим … Continue reading
Ю 4.24
Задача: В массиве [latex]A[n][/latex] каждый элемент, кроме первого, заменить суммой всех предыдущих элементов. Вводимые данные Предполагаемый вывод Комментарий 1 1 1 1 1 1 1 1 2 3 4 5 Тест пройден 1 2 3 4 5 6 7 8 9 1 1 3 6 10 15 21 28 36 Тест пройден 3 5 2 … Continue reading
AL6
Условие Дана конечная последовательность, состоящая из левых и правых скобок различных заданных типов. Как определить, можно ли добавить в нее цифры и знаки арифметических действий так, чтобы получилось правильное арифметическое выражение. Входные данные $latex ({([])})$ Выходные данные Yes. Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static class stack { char arr[] = new char[10]; int current; stack(){current = 0;}; void push(char x) { arr[current] = x; current++; } void pop() { current--; } char back() { return arr[current-1]; } int size() { return current; } }; public static void main (String[] args) throws java.lang.Exception { String brace; Scanner input = new Scanner(System.in); brace = input.nextLine(); stack x = new stack(); char a = brace.charAt(0); if(a == '(' || a == '{' || a== '[') { for(int i=0;i<brace.length();i++) { a = brace.charAt(i); if(a == '(' || a == '{' || a== '[') x.push(a); else if(Math.abs(a - x.back()) < 3 && x.size() != 0) { x.pop(); } else { System.out.println("No"); System.exit(0); } } if(x.size() == 0) { System.out.println("Yes"); } else System.out.println("No"); } else { System.out.println("No"); System.exit(0); } } } |
Решение Арифметическое выражение является правильным если каждой открывающей скобке соответствует единственная закрывающая. Что бы убедится … Continue reading
Монстр
Ссылка на оригинал задачи Задача: Монстр гонится за Риком и Морти на другой планете. Они настолько напуганы, что иногда кричат. Точнее, Рик кричит в моменты времени [latex]b,[/latex] [latex]b + a,[/latex] [latex]b + 2a,[/latex] [latex]b + 3a,[/latex]…, а Морти кричит в моменты времени [latex]d,[/latex] [latex]d + c,[/latex] [latex]d + 2c,[/latex] [latex]d + 3c,[/latex]…. Монстр поймает их, если … Continue reading
A60г
Задача: Пусть [latex]D[/latex] — заштрихованная часть плоскости и пусть [latex]u[/latex] определяется по [latex]x[/latex] и [latex]y[/latex] yследующим образом: [latex] u=\begin{cases}x^(2)-1;\text{if}(x,y)\in D \\\sqrt{\left| x-1\right|};\text{ another case }\end{cases}[/latex] (запись[latex](x,y)\in D[/latex] означает, что точка с координатами [latex]x,y[/latex] принадлежит [latex]D[/latex]). Даны действительные числа [latex]x[/latex] и [latex]y[/latex]. Определить [latex]u.[/latex] Тесты: № ВХОД ВЫХОД [latex]x[/latex] [latex]y[/latex] [latex]u[/latex] 1 0.3 0.3 0.836660 2 1 1 0.000000 3 2 2 1.000000 4 0 … Continue reading
ML 24
Условие задачи: Треугольник задан длинами сторон. Найти радиус вписанной [latex]r[/latex] и описанной [latex]R[/latex] окружностей. Тесты: [latex]a[/latex] [latex]b[/latex] [latex]c[/latex] [latex]r[/latex] [latex]R[/latex] 3 4 5 1 2.5 7.5 10 13 2.45012 6.52361 1 3 4 0 inf 1 1 3 Не существует! Не существует! Код программы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import java.util.*; public class triangle { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("Введите a: "); double a = in.nextDouble(); System.out.print("Введите b: "); double b = in.nextDouble(); System.out.print("Введите c: "); double c = in.nextDouble(); double p = (a + b + c) / 2; double S = Math.sqrt(p * (p - a) * (p - b) * (p - c)); //формула Герона double r = S / p; double R = a * b * c / (4 * S); System.out.println("Радиус вписанной окружности равен " + r); System.out.println("Радиус описанной окружности равен " + R); } } |
Алгоритм: Проводим следующие вычисления (порядок сохранен):
16 17 18 19 20 21 |
double p = (a + b + c) / 2; double S = Math.sqrt(p * (p - a) * (p - b) * (p - c)); //формула Герона double r = S / p; double R = a * b * c / (4 * S); System.out.println("Радиус вписанной окружности равен " + r); System.out.println("Радиус описанной окружности равен " + R); |
Вычисляем полупериметр [latex]p[/latex] треугольника: [latex]p[/latex] = … Continue reading
АА14
Условие задачи В заданной строке удалить первый символ ‘.’, который найдется в строке. Входные данные Строка с точками либо без них. Выходные данные Строка без первой точки. Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main (String[] args) throws java.lang.Exception { Scanner input = new Scanner(System.in); String str = input.nextLine(); int index = str.indexOf('.'); if(index>=0) { String part1 = str.substring(0,str.indexOf('.')); String part2 = str.substring(str.indexOf('.')+1,str.length()); System.out.println(part1+part2); } else System.out.println("No dots"); } } |
Описание решения Объявляем переменную str и присваиваем ей значение, при помощи метода String.indexOf() находим индекс первого вхождения символа ‘.’ . Разделяем строку на две части: первая … Continue reading
A301. Количество точек в полукругах
Задача Даны действительные числа [latex]x_1, y_1[/latex], [latex]x_2, y_2[/latex], [latex]\ldots[/latex], [latex]x_{20}, y_{20}[/latex], [latex]r_1[/latex], [latex]r_2[/latex], [latex]\ldots[/latex], [latex]r_{11}[/latex], [latex]\left( 0 < r_1 < r_2 < \ldots < r_{11} \right)[/latex]. Пары [latex]\left( x_1, y_1 \right)[/latex], [latex]\left( x_2, y_2 \right)[/latex], [latex]\ldots[/latex] [latex]\left( x_{20}, y_{20} \right)[/latex] рассматриваются как координаты точек плоскости. Числа [latex]r_1[/latex], [latex]r_2[/latex], [latex]\ldots[/latex], [latex]r_{11}[/latex] рассматриваются как радиусы одиннадцати полукругов … Continue reading
Класс для работы с геометрическими векторами на плоскости
Задача 9. Напишите класс для работы с геометрическими векторами на плоскости. Реализуйте максимально возможное количество методов. Тесты $latex x_1$ $latex y_1$ $latex x_2$ $latex y_2$ $latex x_3$ $latex y_3$ $latex x_4$ $latex y_4$ Ск. пр. Угол 4 4 61 12 44 65 21 51 -1423 2.7342438697918836 Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
import java.util.*; import java.lang.Math.*; import java.io.*; class geomVector { public double x1,x2,y1,y2,xV,yV,xM,yM,vL; public void setVector(double a1,double b1, double a2, double b2) { x1 = a1; x2 = a2; y1 = b1; y2 = b2; } public void getVectorCoords() { xV = x2 - x1; yV = y2 - y1; } public void getMiddleCoords() { getVectorCoords(); xM = xV/2; yM = yV/2; } public void multiplyVector(double a) { x1*=a; x2*=a; y1*=a; y2*=a; getVectorCoords(); getMiddleCoords(); } public double getLength() { return vL = Math.sqrt(xV*xV+yV*yV); } public void vectorSum(geomVector a,geomVector b) { a.setVector(a.x1,a.y1,b.x2,b.y2); } public double scalMult(geomVector a,geomVector b) { return (a.xV*b.xV+a.yV*b.yV); } public double getAngle(geomVector a, geomVector b) { return Math.acos(scalMult(a,b)/(a.getLength()*b.getLength())); } } public class Main { public static void main(String[] args) { double x1,x2,x3,x4,y1,y2,y3,y4; Scanner in = new Scanner(System.in); x1 = in.nextDouble(); x2 = in.nextDouble(); x3 = in.nextDouble(); x4 = in.nextDouble(); y1 = in.nextDouble(); y2 = in.nextDouble(); y3 = in.nextDouble(); y4 = in.nextDouble(); geomVector a = new geomVector(); geomVector b = new geomVector(); a.setVector(x1,y1,x2,y2); b.setVector(x3,y3,x4,y4); a.getVectorCoords(); b.getVectorCoords(); System.out.println(b.scalMult(b,a)); System.out.println(a.getAngle(a,b)); } } |
Описание решения Переменные $latex x_1,y_1,x_2,y_2$ являются … Continue reading
А136л
Постановка задачи Даны натуральное число $latex n$, действительные числа $latex a_1,\cdots,a_n$. Вычислить: $latex |a_1*a_2*\cdots*a_n|$. Тесты $latex n$ $latex a_1$ $latex a_2$ $latex a_3$ $latex a_4$ $latex a_5$ $latex a_6$ $latex a_7$ $latex a_8$ $latex k$ 4 5 -3 2 1 — — — — 5.477225575051661 5 2 7 4 3 5 — — — 28.982753492378876 3 4 4 … Continue reading