Задача Задача из журнала «Квант» №7 1970 г. Квадратный лист бумаги разрезают по прямой на две части. Одну из полученных частей снова разрезают на две части, и так делают много раз. Какое наименьшее число разрезов нужно сделать, чтобы среди полученных частей оказалось -угольников? Входные данные: Количество многоугольников . Количество углов многоугольника . Выходные данные: Количество … Continue reading
А694а
Задача Получить квадратную матрицу порядка Тесты n Матрица 3 1 0 0 0 1 0 0 0 1 4 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 6 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 … Continue reading
e-olymp 974. Флойд-1
Полный ориентированный взвешенный граф задан матрицей смежности. Постройте матрицу кратчайших путей между его вершинами. Гарантируется, что в графе нет циклов отрицательного веса. Входные данные В первой строке записано количество вершин графа n (1 ≤ [latex]n[/latex] ≤ 100). В следующих n строках записано по [latex]n[/latex] чисел — матрица смежности графа ([latex]j[/latex]-ое число в [latex]i[/latex]-ой строке соответствует … Continue reading
A410e
Дана целочисленная матрица [latex]\begin{bmatrix}a_{i,j}\end{bmatrix},i,j=1,..,n[/latex].Получить [latex]b_{1},..,b_{n}[/latex],где [latex]b_{i}[/latex] — это: [latex]\underset{1\leq j\leq n}{\max a_{ij}}\ * \underset{1\leq j\leq n}{\min a_{ji}}[/latex] Исходя из задачи ясно, что из данной матрицы надо взять максимальный элемент [latex]i[/latex]-й строки и умножить его на минимальный элемент [latex]i[/latex] -го столбца. Так например, если нам дана матрица 2-го порядка [latex]\begin{Vmatrix}1&2\\4&1\end{Vmatrix}[/latex] то [latex]b_{1} = 2[/latex], [latex]b_{2} = … Continue reading
А136е
Постановка задачи Входные данные Даны натуральное число [latex]n[/latex] и действительные числа [latex]a_{1}, a_{2}, \ldots, a_{n}[/latex] Выходные данные Вычислить [latex]a_{1}+a_{2}+\cdots+a_{n}[/latex] и [latex]a_{1}a_{2}\cdots a_{n}[/latex]. Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main (String[] args) throws java.lang.Exception { Scanner in = new Scanner(System.in); int n = in.nextInt(); double s = 0, p = 1, a = 0; for( int i = 0; i < n; i++ ){ a = in.nextInt(); s += a; p *= a; } System.out.println(s); System.out.print(p); } } |
Тесты n [latex]a_{1}, a_{2}, \cdots, a_{n}[/latex] s p 2 3 4 7 12 4 1 3 5 7 16 105 6 2 2 3 3 4 4 18 576 1 9 … Continue reading
e-olymp 904. Увеличить на 2
Постановка задачи Задан одномерный массив [latex]A[/latex] целых чисел. Увеличить на [latex]2[/latex] каждый неотрицательный элемент массива. Входные данные В первой строке задано натуральное число [latex]n[/latex] — количество элементов массива [latex]n <= 100[/latex]. Во второй строке через пробел заданы сами элементы массива, значение каждого из которых по модулю не превышает 100. Выходные данные В единственной строке вывести … Continue reading
Ю 3.32
Задача: Вычислить [latex]x=2\left(\sin x-\frac{\sin 2x}{2}+\frac{\sin 3x}{3}-\cdots+\left(-1 \right)^{n-1} \frac{\sin nx}{n}\right), [/latex] [latex]-\pi < x < \pi [/latex] Тесты n x Сумма Комментарий 3 1 0.867725 Пройден 2 2 2.575397 Пройден 1 5 -1.917849 Пройден Код программы
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 |
/* package whatever; // don't place package name! */ import java.util.*; import java.lang.*; import java.io.*; /* Name of the class has to be "Main" only if the class is public. */ class Ideone { public static void main (String[] args) throws java.lang.Exception { Scanner sc = new Scanner(System.in); int n; double x; n = sc.nextInt(); x = sc.nextInt(); double result=0; int j = 1; for(int i = n; i > 0; i--){ result += j * Math.sin(i * x) / i; j *= -1; } System.out.println(result); } } |
Описание решения: Запишем общий вид суммы: [latex]2\sum_{i=1}^{n}{\left(-1 \right)^{n-1}}\frac{\sin ix}{i}[/latex] Чтобы вычислить сумму запускаем цикл. Перед слагаемыми стоят разные знаки. … Continue reading
Класс рациональных дробей
Задача Напишите класс для работы с не изменяемыми (immutable) рациональными дробями используя статические методы. Код
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 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
import java.lang.*; class Rational { private int n, d; /** * @param n is a numerator of Fraction * @param d is a divider of Fraction */ public Rational(int n, int d) throws ArithmeticException { if (d == 0) throw new ArithmeticException("wrong "); int divisor = gcd(n, d); this.n = n / divisor; this.d = d / divisor; } /** * @param n is a numerator of Fraction * @param d is a divider of Fraction * @return the greatest common divisor of numerator and divider */ private static int gcd(int n, int d) { return (d == 0 ? n : gcd(d, n % d)); } /** * Check fractions for equality * * @param x the first fraction * @param y the seconds fraction * @return true if they are equals, otherwise returns false */ public static boolean equals(Rational x, Rational y) { if (x.n != y.n || x.d != y.d) return false; else return true; } /** * Add two Fractions x and y * * @param x the first Fraction * @param y the second Fraction * @return the result of there addition */ public static Rational add(Rational x, Rational y) { return new Rational(x.n * y.d + y.n * x.d, x.d * y.d); } /** * Subtract two Franctions x and y * * @param x the first Fraction * @param y the second Fraction * @return the result of there subtraction */ public static Rational sub(Rational x, Rational y) { return new Rational(x.n * y.d - y.n * x.d, x.d * y.d); } /** * Multiply two Fractions x and y * * @param x the first Fraction * @param y the seconds Fraction * @return the result of there multiplication */ public static Rational mul(Rational x, Rational y) { return new Rational(x.n * y.n, x.d * y.d); } /** * Divide two Fractions x and y * * @param x the first Fraction * @param y the second Fraction * @return the result of there division */ public static Rational div(Rational x, Rational y) { return new Rational(x.n * y.d, x.d * y.n); } /** * Convert fraction to string value * * @return fraction */ public String toString() { return n + "/" + d; } /** * Compare two fractions and write to console a result * * @param x x the first Fraction * @param y the second Fraction */ public static void cmp(Rational x, Rational y) { if (!equals(x, y)) { if ((x.n * y.d) > (y.n * x.d)) System.out.println(x.toString() + " > " + y.toString()); else System.out.println(y.toString() + " > " + x.toString()); } else System.out.println(x.toString() + " = " + y.toString()); } public static void main(String[] args) { try { Rational a = new Rational(4, 5); Rational b = new Rational(1, 2); Rational c = new Rational(2, 5); System.out.println("Equality - " + equals(a, b)); System.out.println("Equality - " + equals(mul(a, b), c)); System.out.println(c.toString() + "+" + b.toString() + "=" + add(c, b)); System.out.println(a.toString() + "-" + b.toString() + "=" + sub(a, b)); System.out.println(b.toString() + "-" + a.toString() + "=" + sub(b, a)); System.out.println(a.toString() + "*" + b.toString() + "=" + mul(c, b)); System.out.println(a.toString() + "%" + b.toString() + "=" + div(a, b)); cmp(a, b); cmp(b, c); cmp(mul(a, b), c); } catch (ArithmeticException e) { System.out.println("dividing on 0"); } } } |
Код на Ideone. Тест Входящие данные Операция Выходящие данные 4/5 1/2 проверка равенства false 4/5 1/2 2/5 сравнение по равенству дроби и произведения двух других true 2/5 1/2 сложение 9/10 4/5 1/2 вычитание 3/10 4/5 1/2 вычитание -3/10 2/5 … Continue reading
e-olymp 3966. An ardent collector of butterflies
Задача взята с сайта e-olymp.com. Условие Как известно, Андрей Сергеевич — ярый коллекционер бабочек. Он имеет огромную коллекцию, экспонаты которой собраны со всего мира. Будем считать, что в мире существует 2000000000 видов бабочек. Чтобы не запутаться, Андрей Сергеевич присвоил каждому виду уникальный номер. Нумерация бабочек всегда начинается с единицы. Теперь он хочет знать, есть ли … Continue reading
e-olymp 6127. The queue of unlimited size
Задача взята с сайта e-olymp.com. Условие Реализуйте структуру данных «очередь«. Напишите программу, содержащую описание очереди и моделирующую работу очереди, реализовав все указанные здесь методы. Программа считывает последовательность команд и в зависимости от команды выполняет ту или иную операцию. После выполнения каждой команды программа должна вывести одну строчку. Возможные команды для программы: push n Добавить в … Continue reading