Процедуры и функции

145 задачвместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.

Магистр Математикус обладает волшебными способностями, которые позволяют ему превращать положительные числа в 1 с помощью следующих операций:

  1. Если число четное, он может разделить его на 2.
  2. Если число нечетное, он может увеличить его на 1 или уменьшить на 1.

Сегодня Магистр Математикус задумался над вопросом, какое минимальное количество операций ему необходимо выполнить для превращения числа n в 1 с использованием его волшебных способностей. Помогите ему ответить на этот вопрос.



Входные данные
Программа получает на вход целое число n.

Ограничения на входные данные
  • 1 <= n <= 231 - 1

Выходные данные
Выведите ответ на задачу.
 
 
Примеры
Входные данные Выходные данные
1 8 3
2 7 4
✓ 16✗ 39700средняяВойти и решать
Напишите программу, которая переводит число N из системы счисления с основанием r в десятичную систему счисления.

Входные данные
Программа получает на вход два натуральных числа: и r (2 <= r <= 9). Гарантируется, что число N является правильной записью числа в системе счисления c основанием r (то есть содержит цифры от 0 до r-1).

Выходные данные
Выведите на экран число в десятичной системе счисления.
 
Примеры
Входные данные Выходные данные
1 100 2 4

Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае.

Операцией возведения в степень пользоваться нельзя!
 

Входные данные

Вводится натуральное число N (N < 109).

Выходные данные

Выведите ответ на задачу.

 
Примеры
Входные данные Выходные данные
1 1 YES
2 4 YES
3 5 NO
 
✓ 96✗ 106400лёгкаяВойти и решать
+3 or +5#43329
Маленький Гриша научился выполнять с любым числом две операции: прибавлять к числу 3 и прибавлять к числу 5. Но, к сожалению, он еще не знает, что таким путем он не cможет из числа 1 получить любое число. Помогите Грише понять, сможет ли он из числа 1 получить число N или нет. 


Входные данные

Программа получает на вход натуральное число N (N <= 200).


Выходные данные

Выведите слово YES, если число N можно получить из числа 1, или NO - в противном случае. 
 

Примечание

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

 
Примеры
Входные данные Выходные данные
1 5 NO
2 1 YES
✓ 157✗ 297500лёгкаяВойти и решать
42892#42892

Как называется программный код, который выполняется при вызове функции?

1) введение функции
2) тело функции
3) заголовок функции
4) инициализация функции

Напишите подпрограмму draw_figure(symbol, side), которая выводит на экран фигуру, состоящую из двух равнобедренных прямоугольных треугольников (см. примеры).

Где
  • symbol - символ-заполнитель, которым рисуется фигура;
  • side - размер катетов прямоугольного треугольника.

Входные данные
В первой строке записан символ-заполнитель (symbol), во второй строке - размер катетов (side) .

Выходные данные
Выведите на экран ответ фигуру.
 
Примеры
Входные данные Выходные данные
1
*
5
*****
****
***
**
*
*
**
***
****
*****
2
x
3
xxx
xx
x
x
xx
xxx
Алиса изучает символьную графику. Сначала, она хотела нарисовать прямоугольный треугольник с катетами, равными 5. Напишите для Алисы подпрограмму triangle_down(), которая бы выводила данный треугольник.
*
**
***
****
*****
Затем, Алиса захотела нарисовать перевернутый прямоугольный треугольник с катетами, равными 5. Напишите для Алисы подпрограмму triangle_up(), которая бы выводила данный треугольник.
*****
****
***
**
*
Немного подумав, Алиса решила, что может использовать ваши подпрограммы, чтобы нарисовать следующую фигуру. 
*****
****
***
**
*
*
**
***
****
*****

Напишите и вы подпрограмму star_figure(), которая бы выводила данную фигуру, используя выше приведенные подпрограммы. 
Основная программа должна содержать только одну строчку - вызов подпрограммы star_figure().

 
Примеры
Входные данные Выходные данные
1  
*****
****
***
**
*
*
**
***
****
*****
Алиса изучает символьную графику и хочет нарисовать состоящий из звезд прямоугольный треугольник с катетами, равными 5. Напишите функцию triangle(), которая будет выводить на экран прямоугольный треугольник, нарисованный в примере выходных данных.
 
Примеры
Входные данные Выходные данные
1  
*****
****
***
**
*
Алиса изучает символьную графику и хочет нарисовать состоящий из звезд прямоугольный треугольник с катетами, равными 5. Напишите функцию triangle(), которая будет выводить на экран такой прямоугольный треугольник, нарисованный в примере выходных данных.
 
Примеры
Входные данные Выходные данные
1  
*
**
***
****
*****
Напишите функцию vowels_count, которая принимает строку и подсчитывает количество английских гласных в ней.
Английские гласные буквы: a, e, i, o, u, y.

Используя данную функцию, определите две строки:
s1 - строку с самым большим числом гласных букв (если таких строк несколько, взять ту, которая встретится раньше).
s2 - строку с самым маленьким числом согласных букв (если таких строк несколько, взять ту, которая встретится раньше).


Входные данные
В первой строке подается натуральное число n (1 < n <= 10) - количество строк. Далее идут n строк. Каждая строка состоит из английских маленьких букв и пробелов.

Выходные данные
Выведите на экран две строки: сначала строку s1, затем, с новой строки - s2. Наименьшую из данных строк выровняйте по длине с наибольшей, добавив слева строки символы '*'.
 
Примеры
Входные данные Выходные данные
1 4
mama papa
doughter son
brother sister
grandmama grandpa
grandmama grandpa
********mama papa
 
Программа заменяет в строке s все буквы 'h' на 'H', кроме первого и последнего вхождения. Вставьте пропущенные строки.
 
Примеры
Входные данные Выходные данные
1 In the hole in the ground there lived a hobbit In the Hole in tHe ground tHere lived a hobbit
Определите количество шестизначных «счастливых» чисел. «Счастливым» будем называть такое шестизначное число, в котором сумма его первых трех цифр равна сумме его последних трех цифр. 
Заполните пропуски в программе.

Функция sum3(n) вычисляет сумму цифр трехзначного числа.
Функция happy(n) определяет является ли число n счастливым. Функция happy(n) для своей работы использует функцию sum3(n).
Программа вычисляет значение выражения
\(ans = {2 + \sqrt{2} \over {5 + \sqrt{5}}} + {5 + \sqrt{5} \over {13 + \sqrt{13}}}+{13 + \sqrt{13} \over {8 + \sqrt{8}}}\).

Для вычисления используется функция drop(a, b), которая вычисляет значение одного слагаемого.
Запишите пропущенную строку в этой функции.
Поделиться
Класснуть