Возведение в степень - QBasic
Формулировка задачи:
Надо найти следующее:
9^999999+9^999999
Решение задачи: «Возведение в степень»
textual
Листинг программы
Sub www()
Dim a(250000) As Long, b As Long, c As Long
Dim i As Long, j As Long, l As Long, n As Long, m As Long
Dim t As Single
Open "Output.txt" For Output As #1
n = 249999
m = 6561
a(0) = 1458
t = Timer
For i = 1 To n
j = -1
While j < l Or c > 0
j = j + 1
b = a(j) * m + c
a(j) = b Mod 10000
c = b \ 10000
Wend
l = j
Next
Print #1, a(l) & "";
For i = 1 To l
Print #1, Right$("0000" & a(l - i), 4);
Next
Close
Debug.Print Timer - t
End Sub
Объяснение кода листинга программы
В этом коде выполняется вычисление числа, возведенного в степень.
- Создаются массивы a, b, c, i, j, l, n, m, t.
- Открывается файл
Output.txtдля записи. - Присваиваются значения переменным n и m.
- Задается начальное значение переменной a(0).
- Засекается время выполнения программы.
- Цикл For i = 1 To n выполняет вычисления.
- Переменная j инициализируется значением -1.
- Цикл While j < l Or c > 0 выполняет вычисления, увеличивая значение j на 1.
- Значение переменной b вычисляется как произведение a(j) и m, с последующим взятием остатка от деления на 10000 (для циклического сдвига влево на 14 цифр).
- Значение переменной c вычисляется как частное от деления b на 10000.
- После выхода из цикла While, значение переменной l присваивается значение j.
- После цикла For, выводится значение переменной a(l) в файл
Output.txt. - Затем, в цикле For i = 1 To l, выводятся значения a(l - i) в формате 4-х цифр с ведущими нулями.
- Файл
Output.txtзакрывается. - Выводится время, затраченное на выполнение программы.