Линейные алгоритмы

188 задач
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Дано натуральное число N (вводится с клавиатуры). Вычислите \(2^N\). Выведите на экран вычисленное значение (\(1<=N<=15\)).


Входные данные
На вход подается одно число N.

Выходные данные
Выведите на экран результат выражения \(2^N\).
 
 
Примеры
Входные данные Выходные данные
1 3 8
Палиндром - это число, одинаково читающееся в обоих направлениях (не меняется при перестановке своих цифр в обратном порядке).
Дано натуральное число K. Выведите на экран количество натуральных палиндромов, не превосходящих число К.

Входные данные 
Задано единственное число K (\(1<=K<=100000\)).

Выходные данные 
Необходимо вывести количество натуральных палиндромов, не превосходящих K.
 
Примеры
Входные данные Выходные данные
1 1 1
2 100 18

По целому натуральному числу N вычислите \(N!\) ("эн-факториал") – произведение всех натуральных чисел от 1 до  N  (\( N!=1 \cdot 2 \cdot 3 \cdot …\cdot N\) ).

Входные данные
Вводится единственное число N  – натуральное, не превосходит 12.

Выходные данные
Выведите полученное значение \(N!\)
 

 

Примеры
Входные данные Выходные данные
1 5 120
Напишите программу, которая моделирует работу следующего автомата. Автомат получает на вход трехзначное число и строит новое число следующим образом:
  1. вычисляются суммы первой и второй, затем - второй и третьей цифр;
  2. эти суммы записываются в порядке невозрастания.
Например, для числа 639 получаем суммы: 6 + 3 = 9; 3 + 9 = 12. Результат: 129. Напишите программу, которая реализует работу данного автомата.

Входные данные 
На вход программе подается одно число n (100 <= n <= 999).

Выходные данные 
Необходимо вывести новое число.
 
Примеры
Входные данные Выходные данные
1 654 119
Дворецкий Бейливик решил купить квартиру. Для покупки квартиры ему необходимо оформить ипотеку. Он знает, что ему нужен займ размером R монет. Бейливик хочет определить переплату при известной процентной ставке P% в год и периоде M месяцев, на который берется ипотека. Оплата осуществляется ежемесячно. Ипотечные платежи - аннуитетные. 

Формат входных данных
На вход программе подаются три числа, каждое с новой строки - размер займа - целое число R (\(0 < R < 5 \cdot 10^6\)), годовая процентная ставка - вещественное число P (\(0 < P <= 15\))  и период кредитования (в месяцах) - целое число M (\(0 < M <= 300\)).

Формат выходных данных
Выведите одно число  - величину переплаты к концу срока кредитования.
 Принцесса Эмбер, ее брат и София учатся в Академии волшебников, где у них также есть математика (никто же не сомневается, что математика важна волшебникам так же, как и знание различных заклинаний). 
Недавно учитель математики поведал детям о хитром способе возведения в квадрат натуральных чисел, оканчивающихся на цифру 5. Теперь ребята могут с легкостью возводить в квадрат двузначные (и даже некоторые трехзначные) числа, оканчивающиеся на 5.
Способ заключается в следующем:
  • для возведения в квадрат числа, оканчивающегося на 5, достаточно умножить число, полученное из исходного вычеркиванием последней пятерки на следующее по порядку число, затем остается лишь приписать «25» к получившемуся результату справа.
Например, для того, чтобы возвести число 125 в квадрат достаточно 12 умножить на 13 и приписать 25, т.е. приписывая к числу 12*13=156 число 25, получаем результат 15625, т.е. 1252=15625.

Эмбер решила потренироваться в новом навыке, и хочет, чтобы ее кто-то проверил. Но так как она слишком горда, чтобы просить чьей-то помощи в Королевстве. Она просит вас написать для нее программу, по которой бы она смогла себя проверить.

Формат входных данных
На вход подается целое число A, оканчивающееся цифрой 5 и не превышающее \(400005\).

Примечание: для решения задачи на С++ используйте тип данных long long

Формат выходных данных
Выведите одно число - A2.
Marmalade Fruit Preserves Jar Clip Art - Jam @clipartmax.comКролик Клевер и принцесса София нашли рецепт вишневого варенья.
Рецепт вишневого варенья достаточно прост: "Для варенья возьмите вишню, сахар и воду в соотношении \(3:2:1\)".
Помогите друзьям посчитать сколько получится варенья, если они возьмут воды в размере n литров (будем считать, что вода не выкипает). Сколько надо взять вишни и сахара? 
Напишите для друзей программу, которая по введенному значению воды (\(n <= 10^6)\) будет выводить, сколько надо взять вишни и сахара и сколько получится варенья.


Формат входных данных
На вход подается одно целое число n.

Формат выходных данных
Выведите на экран ответ на задачу. Формат вывода смотри в примере.

Чтобы сдать программу на проверку, можно написать ее прямо на странице задачи в редакторе кода, который расположен на этой же странице. 

Задание:
1) Скопируйте программу, записанную ниже, в окно редактора. 

Программа
a = int(input())
b = int(input())
print(a + b)


2) Нажмите на кнопку Проверить. Результаты работы программы будут отображаться в окне "Результат проверки программы". 

Каждая задача тестируется на некотором количестве тестов. Результаты каждого теста отображаются в окне результатов. В учебных задачах вы можете увидеть содержание тестов, на которых тестируется программа. 

Ваша цель написать программу, которая пройдет все тестовые случаи. В этом случаи вы получите сообщение ВЫПОЛНЕНО 100% ТЕСТОВ. 

Не расстраивайтесь, если не получится сдать программу с первого раза. Иногда бывает трудно с первого раза справиться с задачей. Не переживайте, это нормально! Попробуйте перечитать условие задачи и подумать, какие случаи вы не рассмотрели. Важно не останавливаться и продолжать стараться.


Удачи!

 
Кролик Клевер вместе с друзьями стали изучать математику. Первое что они узнали - это то, что все числа состоят из цифр. Напишите программу, которая поможет Кролику Клеверу определить цифру десятков в данном числе. 
Напомним, что десятки - это предпоследняя цифра числа.
 
Входные данные
Вводится натуральное число.
 
Выходные данные 
Выведите ответ на задачу.
 
Примеры
Входные данные Выходные данные
1 2007 0
2 90 9
 

Кролик Клевер пошел в пекарню за пирожками. Один пирожок стоит a рублей и b копеек. Определите, сколько рублей и копеек нужно заплатить за n пирожков.
 

Входные данные 
Программа получает на вход три строки, в каждой из которой записано по одному целому числу: в первой строке записано число a, во второй - число b, в третьей - число n.

Выходные данные
Программа должна вывести одну строку, в которой записано стоимость покупки в рублях и копейках (формат вывода смотри в примерах).
 
Кролик Клевер очень любит яблоки. Также он любит угощать яблоками своих друзей. У Кролика N друзей. Он собрал в саду K яблок и хочет их поделить поровну между своими друзьями, неделящийся остаток он оставит в корзинке. Сколько яблок достанется каждому другу и сколько яблок у него останется в корзине?
Помогите Кролику Клеверу посчитать эту информацию. Напишите для него программу.

Формат входных данных
Программа получает на вход два числа: N - количество друзей у кролика (не более 1000), K - количество яблок (не более 1000000). Каждое число записано в отдельной строке.

Формат выходных данных
Необходимо вывести в первой строке число яблок, которые достанутся каждому другу. Во второй строке - число яблок, которые останутся в корзинке.
Для приведенного ниже кода, найдите асимптотику:
#include <bits/stdc++.h>
using namespace std;

int main()
{
	int n, m;
	vector < vector<int> > up1(n, vector <int>(m));
	int ans = 0;
	for (int i = 1; i <= n; i++)
	{
		vector <int> L(m + 1, 1), R(m + 1, m);
		stack <int> q;
		for (int j = 1; j <= m; j++)
		{
			while (!q.empty() && up1[i][j] < up1[i][q.top()])
			{
				R[q.top()] = j - 1;
				q.pop();
			}
			q.push(j);
		}
		while (!q.empty())
			q.pop();
		for (int j = m; j >= 1; j--)
		{
			while (!q.empty() && up1[i][j] < up1[i][q.top()])
			{
				L[q.top()] = j + 1;
				q.pop();
			}
			q.push(j);
		}
		for (int j = 1; j <= m; j++)
			ans = max(ans, up1[i][j] * (R[j] - L[j] + 1));
	}
	cout << ans;
	return 0;
}

1) O(n + m)      2) O(nm)       3) O(n^2*m)      4) O(n*m^2)
Омега-лямбда-исчисление - инновационная разработка "British Scientists, Inc" в сфере формальной логики. Любое выражение омега-лямбда-исчисления состоит из круглых скобок и термов (термом может быть любая последовательность из букв латинского алфавита). 
Иззи-редукция - одна из операций над такими выражениями. При её выполнении проверяется, является ли скобочная последовательность в выражении правильной. Термы при этом игнорируются. Если последовательность правильная - она превращается в терм gg, если нет - в терм wp
На вход подаётся омега-лямбда-выражение длиной не более 107 символов. Нужно вывести результат его иззи-редукции.
 

 

Примеры
Входные данные Выходные данные
1 a(b(xx)f(g(x))m(y)) gg
Составить программу вывода на экран четырех целых чисел в столбик, по два числа в одной строке через пробел. Числа вводятся с клавиатуры в одну строку через пробел. Вначале каждой строки добавьте ее номер (см. пример).
 
Пример
Входные данные Выходные данные
1 5 7 8 9 line 1: 5 7
line 2: 8 9
Составить программу вывода на экран двух чисел в строку через три пробела. Исходные числа вводятся с клавиатуры в одной строке через пробел.
 
Пример
Входные данные Выходные данные
1 5 7 5   7
Составить программу вывода на экран в столбик двух чисел, вводимых с клавиатуры через пробел. В конце первой строки добавьте фразу endline.
 
Пример
Входные данные Выходные данные
1 5 7 5 endline
7
Реализуйте на одном из языков программирования алгоритм, представленный на схеме.
В первой строке ввода содержатся два целых числа N и K (1 ≤ N, K ≤ 10001).
Вывести одно целое число – сумму N и K после завершения работы алгоритма.


Ввод Вывод
30 15 19

Реализуйте на одном из языков программирования алгоритм, представленный на схеме.
В первой строке ввода содержатся целое число N (1 ≤ N ≤ 100). Далее следует N строк, содержащих по одному целому числу в диапазоне от −1000 до 1000.
Вывести одно целое число – значение M после завершения работы алгоритма.



Ввод Вывод
4
2
3
-7
4
5

Реализуйте на одном из языков программирования алгоритм, представленный на схеме. Выражение S mod K означает вычисление остатка от деления S на K.
В первой строке ввода содержится целое число N (1 ≤ N ≤ 100). Далее следует N строк, содержащих по одному целому числу в диапазоне от 1 до 1000.
Вывести сообщение Yes или No как указано в алгоритме.


 
Ввод Вывод
3
2
1
3
Yes
3
1
2
3
No
Поделиться
Класснуть