5.1. (операция возведения в степень в языке... x

advertisement
Урок 5. Тема: Цикл с предусловием. Цикл с постусловием
5.1. По заданным вещественному значению x и целому значению n вычислите xn
(операция возведения в степень в языке Pascal отсутствует). Для решения задачи
используйте последовательное домножение результата на x.
На вход программе подаются вещественное число x, по модулю не превосходящее
10, и целое число n, по модулю не превосходящее 20. Выведите значение xn с точностью
до трех цифр после десятичной точки.
Примеры входных данных Примеры выходных данных
2 10
1024.000
2 -3
0.125
5.2. По заданным вещественному значению x и целому неотрицательному значению n
вычислите xn (операция возведения в степень в языке Pascal отсутствует). Для решения
задачи используйте алгоритм эффективного возведения в степень.
Алгоритм основан на тождестве x2n = xn xn. Тогда если n = 2k, то значение xn можно
получить из x, домножая результат сам на себя k раз (таким образом, мы будем
последовательно получать значения 2-й, 4-й, 8-й, …, 2k-й степеней числа x). В свою
очередь, произвольное n можно представить как сумму степеней двойки (фактически
перевести n в двоичную систему счисления): n = 2k1 +2k2 +2k3 + … Соответственно
k1
k2
x n  x 2  x 2  ... . Фактически алгоритм эффективного возведения в степень сводится к
последовательному получению 2-й, 4-й, 8-й, и т.д. степеней числа x и перемножению
необходимых степеней.
На вход программе подаются вещественное число x, по модулю не превосходящее
10, и целое неотрицательное число n, не превосходящее 100. Выведите значение xn с
точностью до трех цифр после десятичной точки. Для вычислений используйте тип
extended.
Примеры входных данных Примеры выходных данных
2 10
1024.000
0.5 3
0.125
5.3. Найдите сумму цифр введенного целого числа. (На каждом шаге выделяется
последняя цифра числа, а затем число делится на 10. Процесс повторяется, пока число не
станет равным 0.)
На вход программе подается целое неотрицательное число n  109. Выведите сумму
его цифр.
Примеры входных данных Примеры выходных данных
1234
10
5
5
5.4. На вход программе подается натуральное число n  109. Проверьте, является ли оно
простым. Выведите YES или NO в зависимости от ответа на вопрос задачи. Максимальное
время работы программы на одном тесте — 0,1 секунды.
Примеры входных данных Примеры выходных данных
13
YES
10
NO
5.5. На вход программе подается натуральное число n  109. Проверьте, можно ли
представить его в виде суммы двух квадратов натуральных чисел. Выведите YES или NO в
зависимости от ответа на вопрос задачи. В случае положительного ответа во второй
строке выведите два числа, сумма квадратов которых равна n. Числа следует выводить в
порядке неубывания. Максимальное время работы программы на одном тесте — 0,1
секунды.
Примеры входных данных Примеры выходных данных
100
YES
6 8
11
NO
5.6. Вкладчик положил на банковский счет n рублей. Каждый год на сумму вклада
начисляется k процентов годовых (будем считать, что процент всегда округляется до
целого числа рублей по формуле [xk/100], где x — сумма вклада на начало года).
Начисленные проценты добавляются к сумме вклада. Через сколько лет сумма вклада
станет не менее m рублей?
На вход программе подаются три натуральных числа: n  106, k  100, m  1000n.
Выведите одно число — искомое количество лет.
Примеры входных данных Примеры выходных данных
100 10 111
2
100 1 100
0
5.7. Вкладчик положил на банковский счет n рублей. Каждый год на сумму вклада
начисляется k процентов годовых (будем считать, что процент всегда округляется до
целого числа рублей по формуле [xk/100], где x — сумма вклада на начало года).
Начисленные проценты добавляются к сумме вклада. Через сколько лет сумма вклада как
минимум удвоится?
На вход программе подается 2 натуральных числа n ≤ 106, k  100. Выведите одно
число — количество лет, через которое сумма вклада как минимум удвоится.
Пример входных данных Пример выходных данных
100 10
8
5.8. На вход программе подаются два натуральных числа n, m  109. Выведите их
наибольший общий делитель. Для решения задачи используйте алгоритм Евклида,
основанный на следующем тождестве: НОД(n, m) = НОД(m, r), где r — остаток от деления
n на m. Если r = 0, то m = НОД(n, m).
Примеры входных данных Примеры выходных данных
24 16
8
11 13
1
5.9. На вход программе подается последовательность целых чисел, заканчивающаяся 0.
Выведите минимальное и максимальное значения среди чисел этой последовательности, 0
при этом не учитывается.
При решении задачи массив использовать нельзя.
Примеры входных данных Примеры выходных данных
1 -1 0
-1 1
1 2 3 4 5 0
1 5
5.10. На вход программе подается последовательность целых чисел, заканчивающаяся 0.
Выведите их среднее арифметическое с точностью до двух знаков после десятичной
точки, 0 при этом членом последовательности не считается.
При решении задачи массив использовать нельзя.
Примеры входных данных Примеры выходных данных
1 -1 0
0.00
1 2 3 4 0
2.50
5.11. Программа получает на вход последовательность целых чисел, по модулю не
превосходящих 109. Признак окончания последовательности — число –2109. Программа
должна определить вид последовательности — возрастающая, убывающая, случайная или
постоянная.
В качестве ответа следует выдать прописными латинскими буквами тип
последовательности:
 ASCENDING (строго возрастающая);
 WEAKLY ASCENDING (нестрого возрастающая, т.е. неубывающая);
 DESCENDING (строго убывающая);
 WEAKLY DESCENDING (нестрого убывающая, т.е. невозрастающая);
 CONSTANT (постоянная);
 RANDOM (случайная).
При решении задачи массивы использовать нельзя.
Примеры входных данных
1 -1 -2000000000
1 2 2 4 -2000000000
1 2 -2 4 -2000000000
Примеры выходных данных
DESCENDING
WEAKLY ASCENDING
RANDOM
Download