Прибирання території
У дворі школи будівельники залишили дві
кучі піску, і об`єм їх відомий - n та m літрів.
Двірник дядько Петро хоче організувати прибирання території школи, але для
цього йому потрібне відро, яким він буде виносити пісок з території. Дядько
Петро хоче взяти саме велике відро, так, щоб для переноски як першої, так і
другої кучі піску йому потрібно було б винести деяку кількість повністю
заповнених відер. Причому, дядько Петро планує зайнятись у понеділок першою
кучею, а другою кучею - лише у середу. Тому пісок з кожної кучі він буде
виносити окремо і незалежно від іншої.
Вам потрібно знайти місткість (в літрах)
такого відра, щоб дядько Петро виніс мінімальну кількість відер і повністю
прибрав двір.
Вхідні дані
У єдиному рядку задано два числа n та m (0 < n, m ≤
216
).
Вихідні дані
Виведіть одне число - відповідь на поставлену задачу.
Вхідні дані #1
2 1
Вихідні дані #1
1
private static long EBOB(long x, long y)
{
while
(x * y != 0)
{
if
(x < y) y = y % x;
else
x = x % y;
}
return
x + y;
}
static void Main(string[] args)
{
string
s = Console.ReadLine();
var
massiv = s.Split(' ');
long
n = long.Parse(massiv[0]);
long
m = long.Parse(massiv[1]);
Console.WriteLine(EBOB(n,
m));
}
Номери будинків
З'ясувати, чи знаходяться будинки з номерами n та m на
одній стороні вулиці.
Вхідні дані
Значення n та m (1 ≤ n, m ≤ 100).
Вихідні дані
Вивести 1, якщо будинки з номерами n та m знаходяться
на одній стороні вулиці та 0 у протилежному випадку.
Вхідні дані #1
1 2
Вихідні дані #1
0
static void
Main(string[] args)
{
string
setir = Console.ReadLine();
var
massiv = setir.Split(' ');
int
n = int.Parse(massiv[0]);
int
m = int.Parse(massiv[1]);
Console.WriteLine((n + m) % 2 == 0 ? 1 : 0);
}
Не A+B
Журі захотіло запропонувати задачу на знаходження суми двох чисел. Але в
результаті магнітної бурі у перевіряючій програмі щось злімалось. Усю нічь
програмний комітет намагався зрозуміти, що відбулось, і, нарешті, зрозумів.
Тепер перовіряюча програма плутає вердикти, тобто замість "Wrong Answer"
система виводить "OK" і навпаки. Залишок ночі журі потратило
на виправлення цієї помилки, але так і не зуміло виправити одну задачу.
Тепер вам потрібно розв'язати трохи іншу задачу про суму двох чисел.
Вхідні дані
У першому і єдиному рядку вхідного файла записано два числа — A та B,
які по модулю не перевищують 50.
Вихідні дані
У першому та єдиному рядку вихідного
файлу виведіть одне число, яке не дорівнює сумі A та B.
Число не повинно перевищувати 100 по модулю.
Вхідні дані
7 4
Вихідні дані
12
static void Main(string[] args)
{
string
setir = Console.ReadLine();
var
massiv = setir.Split(' ');
int
a = int.Parse(massiv[0]);
int
b = int.Parse(massiv[1]);
Console.WriteLine(a
+ b == 5 ? 7 : 5);
}
Торт
На день народження
спадкоємця
Тутті
королівський
кухар
приготував
великий
святковий
торт, який
було
подано
на
стіл
Трьом
Товстунам. Перший
товстун сам міг би повністю його з’їсти за
t1
годин, другий -
за t2
годин, а третій -
за t3
годин.
Скільки часу потрібно товстунам, щоб з’їсти увесь святковий
торт разом?
Вхідні дані
Єдиний рядок містить три не від'ємні цілі числа
t1
, t2
та t3
, кожне з яких не перевищує 10000.
Вхідні дані
Вивести час в годинах, за який товстуни одночасно можуть
з’їсти торт. Результат округлити до двох десяткових знаків.
Вхідні дані #1
3 3 3
Вихідні дані #1
1.000
аналіз алгоритму
Продуктивність
першого товстуна складе 1 / t1 торта на годину. Аналогічно продуктивності другого і
третього товстуна з поїдання торта рівні 1 / t2 і 1 / t3 торта на годину. Якщо товстуни
їстимуть торт одночасно, то в годину вони будуть з'їдати 1 / t1 + 1 / t2 + 1 / t3 частина торта. Отже весь торт може
бути з'їдений 1/(1 / t1 + 1 / t2 + 1 / t3) за годин.
static void Main(string[] args)
{
string
s = Console.ReadLine();
var
massiv = s.Split(' ');
int
t1 = int.Parse(massiv[0]);
int
t2 = int.Parse(massiv[1]);
int
t3 = int.Parse(massiv[2]);
double
rez = 1.0 / (1.0 / t1 + 1.0 / t2 + 1.0 / t3);
Console.WriteLine(rez);
}
f91
МакКарті - відомий теоретик комп'ютерних наук. У одній зі своїх праць він
визначив рекурсивну функцію f91, яка визначена для довільного
натурального числа n наступним чином:
Якщо n ≤ 100,
то f91(n) = f91(f91(n + 11));
Якщо n ≥ 101,
то f91(n) = n - 10.
Вхідні дані
Натуральне число n,
не більше за 1000000.
Вихідні дані
Значення f91(n).
Вхідні дані
Sample 1
500
Sample 2
91
Вихідні дані
Sample 1
490
Sample 2
91
аналіз алгоритму
Необхідно обчислити значення функції f91 (n) для n £ 100.
Маємо: f91 (100) = f91 (f91 (111)) = f91 (101) = 91, f91 (99) = f91 (f91 (110)) = f91 (100) = 91. Аналогічно
продовжуючи, можна помітити що f91 ( n) = 91, де 1 £ n £ 100.
Таким чином, має місце
співвідношення:
f91(n) =
static void
Main(string[] args)
{
int
res;
int
n = int.Parse(Console.ReadLine());
if
(n >= 101) res = n - 10; else res = 91;
Console.WriteLine(res);
}
Число у зворотньому порядку
Записати ціле
невід'ємне число n у зворотньому порядку.
Вхідні дані
Одне ціле невід'ємне
64-х розрядне число.
Вихідні дані
Запис числа у
зворотньому порядку.
Вхідні дані #1
1234
Вихідні дані #1
4321
private static
string tq(string
x)
{
string
y = "";
int
len = x.Length;
for
(int i = 0; i < len; i++)
{
y = x[i] + y;
}
return
y;
}
static void Main(string[]
args)
{
string
e = Console.ReadLine();
Console.WriteLine(tq(e));
}
Сума першої та останньої цифр
числа
Знайти суму першої та останньої цифри цілого числа.
Вхідні дані
Одне ціле 32-х
розрядне число, що містить не менше 2-х цифр.
Вихідні дані
Одне число - розв'язок
задачі.
Вхідні дані #1
2345
Вихідні дані #1
7
private
static int Iq(int x)
{
while
(x > 9) x = x / 10;
return
x;
}
static void Main(string[]
args)
{
int
n = int.Parse(Console.ReadLine());
if
(n < 0) n = -n;
Console.WriteLine(Iq(n)
+ n % 10);
}
Найбільша
сторона чотирикутника
На площині задано чотирикутник координатами своїх вершин.
Обчислити довжину найбільшої сторони чотирикутника.
Вхідні дані
У єдиному рядку через пропуск координати
X
та Y
вершин
чотирикутника: спочатку точки A
, потім B
, далі C
і D
. Усі вхідні дані цілі
числа, які не перевищують по модулю 100.
Вихідні дані
Єдине число - довжина найбільшої сторони. Результат вивести з
точністю до сотих.
Вхідні дані
3 5 6 6 7 2 1 1
Вихідні дані
6.08
private static
double Mesafe(double
x1, double y1, double
x2, double y2)
{
return
Math.Sqrt((x1 - x2)*(x1 - x2) + (y1 -
y2)*(y1 - y2));
}
private static double Max(double a, double b, double c, double d)
{
double max
= a;
if (b > max) max = b;
if (c > max) max = c;
if (d > max) max = d;
return max;
}
static
void Main(string[]
args)
{
string
s = Console.ReadLine();
var
massiv = s.Split(' ');
double
xA = double.Parse(massiv[0]);
double
yA = double.Parse(massiv[1]);
double
xB = double.Parse(massiv[2]);
double
yB = double.Parse(massiv[3]);
double
xC = double.Parse(massiv[4]);
double
yC = double.Parse(massiv[5]);
double
xD = double.Parse(massiv[6]);
double
yD = double.Parse(massiv[7]);
double
AB = Mesafe(xA, yA, xB, yB);
double
BC = Mesafe(xB, yB, xC, yC);
double
CD = Mesafe(xC, yC, xD, yD);
double
DA = Mesafe(xD, yD, xA, yA);
Console.WriteLine("{0:N2}", Max(AB, BC, CD, DA));
}
Розклад трицифрового
числа
Розкласти
задане трицифрове число на цифри.
Вхідні дані
Одне
ціле трицифрове число (додатнє чи від'ємне).
Вихідні дані
Вивести
кожну цифру числа в окремому рядку як наведено у прикладі.
Вхідні дані #1
198
Вихідні дані #1
1
9
8
static void
Main(string[] args)
{
var
e = Console.ReadLine();
e = e.Trim();
e = e.TrimStart('0');
e = e.TrimStart('+');
e = e.TrimStart('-');
Console.WriteLine(e[0]);
Console.WriteLine(e[1]);
Console.WriteLine(e[2]);
}
Без середньої
Записати дане
трицифрове натуральне число без середньої цифри.
Вхідні дані
Одне натуральне
трицифрове число.
Вихідні дані
Вивести трицифрове
число без середньої цифри.
Вхідні дані #1
198
Вихідні дані #1
18
static void Main(string[]
args)
{
string
eded = Console.ReadLine();
Console.WriteLine("" + eded[0] + ""
+ eded[2]);
}
Зворотній порядок
Записати дане
трицифрове натуральне число в зворотному порядку.
Вхідні дані
У єдиному рядку задане натуральне
трицифрове число.
Вихідні дані
Запис заданого числа у зворотному
порядку.
static void
Main(string[] args)
{
string
e = Console.ReadLine();
Console.WriteLine(e[2]
+ "" + e[1] + "" + e[0]);
}
Висота трикутника
Визначити висоту трикутника площею S, якщо його основа більша
за висоту на величину a.
Вхідні дані
Два цілих числа: S (0 < S ≤ 100),
та a (|a| ≤ 100).
Вихідні дані
Шукана висота з точністю до сотих.
аналіз алгоритму
Нехай h - висота
трикутника. Тоді його основа дорівнює h + a. Площа трикутника дорівнює S = ½ h
(h + a). Значення S і a задані, вирішуємо квадратне рівняння щодо h:
h2 + ha - 2S
= 0,
дискриминант D = a2 + 4S,
позитивний корінь дорівнює h =
Реалізація алгоритму
Читаємо вхідні дані. Вирішуємо
квадратне рівняння S = ½ h (h + a) щодо h і виводимо його позитивний корінь.
static void
Main(string[] args)
{
string
s1 = Console.ReadLine();
var
massiv = s1.Split(' ');
int
s = int.Parse(massiv[0]);
int
a = int.Parse(massiv[1]);
Console.WriteLine("{0:N2}", (-a + Math.Sqrt(a
* a + 8 * s)) / 2.0);
}
Число-паліндром
Перевірте, чи є задане
число паліндромом.
Число
називається паліндромом, якщо воно читається зліва направо і зправа
наліво однаково.
Вхідні дані
Одне невід'ємне
ціле 32-х розрядне число.
Вихідні дані
Вивести "Yes"
якщо число паліндром, в іншому випадку "No".
Вхідні дані #1
121
Вихідні дані #1
Yes
private static
string Gu(string
x)
{
string
y = "";
int
len = x.Length;
for
(int i = 0; i < len; i++)
{
y = x[i] + y;
}
return
y;
}
static void Main(string[]
args)
{
string
e = Console.ReadLine();
Console.WriteLine(e
== Gu(e) ? "Yes" : "No");
}
Сума цифр числа
Знайти суму цифр цілого
числа.
Вхідні дані
Одне ціле 32-х
розрядне число (число може бути від'ємним).
Вихідні дані
Одне число - сума цифр
даного числа.
Вхідні дані #1
321
Вихідні дані #1
6
private static
int Suma(int x)
{
int
sum = 0;
while
(x > 0)
{
sum = sum + x % 10;
x = x / 10;
}
return
sum;
}
static void Main(string[]
args)
{
int
n = int.Parse(Console.ReadLine());
if
(n < 0) n = -n;
Console.WriteLine(Suma(n));
}
Парні та непарні числа
Задано три цілих числа a, b, c.
Взначити, чи є серед них хоча б одне парне і хоча б одне непарне.
Вхідні дані
Числа a, b, c,
які не перевищують за модулем 10000 (числа можуть
бути від'ємними).
Вихідні дані
Вивести "YES"
або "NO"
Вхідні дані #2
7 7 7
Вихідні дані #2
NO
private static bool T(int a, int b, int c)
{
if
(a % 2 == 1) return true;
if
(b % 2 == 1) return true;
if
(c % 2 == 1) return true;
return
false;
}
private
static bool C(int a, int b, int c)
{
if
(a % 2 == 0) return true;
if
(b % 2 == 0) return true;
if
(c % 2 == 0) return true;
return
false;
}
static void Main(string[]
args)
{
string
s = Console.ReadLine();
var
massiv = s.Split(' ');
int
a = int.Parse(massiv[0]);
int
b = int.Parse(massiv[1]);
int
c = int.Parse(massiv[2]);
Console.WriteLine(T(a,
b, c) && C(a, b, c) ? "YES" : "NO");
}
Додатнє, від'ємне чи нуль
Задано ціле число n. Виведіть, чи є воно додатним, від'ємним або дорівнює 0.
Вхідні дані
Одне ціле
число n, за модулем не більше за
109
.
Вихідні дані
Виведіть "Positive",
"Negative" чи "Zero" в
залежності від значення n.
static void
Main(string[] args)
{
int
a = Convert.ToInt32(Console.ReadLine());
if
(a == 0) Console.WriteLine("Zero");
if
(a > 0) Console.WriteLine("Positive");
if
(a < 0) Console.WriteLine("Negative");
}
Постійна сума цифр
Знайти кількість двохзначних чисел, які
не змінюють свою суму цифр при множені числа на однозначне ціле число N (N=0..9).
Вхідні дані: Ціле число N. 0≤N≤9.
Вихідні дані: Відповідь до задачі.
Вхідні дані
2
Вихідні дані
10
Пояснення: При множенні
двоцифрових чисел на 2 не змінюють суму цифр такі числа: 18 27 36 45 54 63 72
81 90 99.
private static
int suma(int x)
{
int
sum = 0;
while
(x > 0)
{
sum = sum + x % 10;
x = x / 10;
}
return
sum;
}
static void Main(string[]
args)
{
int
n = int.Parse(Console.ReadLine());
var
k = 0;
for (int i = 10; i < 100; i++)
{
if
(suma(i) == suma(i * n)) k++;
}
Console.WriteLine(k);
}
Комментариев нет:
Отправить комментарий