Написать программу, вычисления степени по "индийскому алгоритму" - Turbo Pascal
Формулировка задачи:
Написать программу, вычисления степени по "индийскому алгоритму" с использованием формул:
при n=1 x^n=x
при n>1 x^=x^(n mod 2)*sqr(x^(ndiv2))
Решение задачи: «Написать программу, вычисления степени по "индийскому алгоритму"»
textual
Листинг программы
function powIndy(x : Real; n : Integer) : Real; begin if n = 0 then powIndy := 1 else if n = 1 then powIndy := x else powIndy := powIndy(x, n mod 2) * sqr( powIndy(x, n div 2) ); end; var x : Real; n : Integer; begin Write('x = '); ReadLn(x); Write('n = '); ReadLn(n); WriteLn('x^n = ', powIndy(x, n)); end.
Объяснение кода листинга программы
- В функции
powIndy
определяется формула для вычисления степени поиндийскому алгоритму
. - Формула представлена в виде рекурсии с базовыми условиями: если
n
равно 0, то результат равен 1, иначе еслиn
равно 1, то результат равенx
, иначе результат вычисляется как произведение двух предыдущих вычислений и квадрат среднего значения. - В основной части программы объявляются две переменные:
x
иn
. - Пользователю предлагается ввести значения этих переменных.
- Затем вызывается функция
powIndy
с переданными значениямиx
иn
и результат выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д