Составить программу возведения заданного числа в третью степень, используя следующую закономерность:
43 = 13 + 15 + 17 + 19
53 = 21 + 23 + 25 + 27 + 29
13(23,33,34,35)=это 1 в кубе
Небольшой анализ и использование свойств арифметической прогрессии позволяет вывести следующие закономерности.
Куб числа представляет собой сумму последовательных нечетных чисел, причем число слагаемых равно возводимому в куб числу.
Значение первого числа в сумме равно
N1 = K*(K-1) + 1, где К — число, куб которого требуется найти.
Отсюда и решение.
S := 0; <переменная для накопления суммы>
n := k * (k-1) + 1; <первое число в последовательности>
m := 0; <число членов последовательности>
while m "сделайте за меня". И не ошибитесь в выборе типа для переменных. Integer позволяет оперировать только с числами от -32768 до +32767. Ставьте Longint, не прогадаете.
Исходник простой программы, которая возводит любое, введённое с клавиатуры число в нужную вам степень. Открывается программами Pascal ABC, Pascal ABC.Net и Turbo Pascal. Пояснительных комментариев нет. Имеет не скомпилированный формат для редактирования .pas. Данная программа использует раннее пройденный цикл параметром FOR.
Исходный код программы:
Разобраться в коде данной программы вы можете, изучив Урок 5 и Урок 6: Циклы while, for, repeat. Исходник программы для нахождения степени числа входит в серию уроков Циклы.
Для возведения числа x в степень n, как правило, используют стандартный метод, т. е. число x умножают n раз само на себя. В задачах математического толка, решаемых при помощи бумаги и ручки, такой метод вполне приемлем, ведь степенная функция быстро растет и поэтому сомнительно, что придется производить затруднительные операции вручную.
Другое дело программирование, где важно не только решить поставленную задачу, но и составить оптимальное решение, удовлетворяющее предусмотренному диапазону входных данных. Так, в частности, для операции возведения числа в степень имеется алгоритм, позволяющий значительно сократить число требуемых операций. Он достаточно прост и основывается на математических свойствах степеней.
Пусть имеется некоторая степень x n , где x – действительное число, а n – натуральное. Тогда для x n справедливо равенство:
x n = (x m ) k
При этом m*k=n. Например: 3 6 =(3 3 ) 2 , 5 7 =(5 7 ) 1 . Это свойство является одним из основных степенных свойств, и именно на нем основывается рассматриваемый метод. Далее, заметим, что в случае, если n является четным числом, то верно следующее равенство:
x n = (x n/2 ) 2 = x n/2 * x n/2
Так, если x=3, а n=6, то имеем 3 6 = (3 6/2 ) 2 = 3 6/2 * 3 6/2 . Используя это свойство, удастся существенно уменьшить число операций необходимых для возведения x в степень n. Теперь адаптируем формулу для случая с нечетным n. Для этого понадобиться просто перейти к степени на единицу меньшей. Например: 5 7 = 5 6 *5, 12 5 = 12 4 *12. Общая форма равенства перехода:
x n = x n-1 *x
В программе, реализующей алгоритм быстрого возведения в степень, используются указанные свойства: если степень n четная, то переходим к степени вдвое меньшей, иначе заменяем по имеющимся правилам нечетную степень на четную.