Урок 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. Признак окончания последовательности — число –2109. Программа должна определить вид последовательности — возрастающая, убывающая, случайная или постоянная. В качестве ответа следует выдать прописными латинскими буквами тип последовательности: 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