Найти все цифры десятичной записи числа - Pascal
Формулировка задачи:
Найти все цифры десятичной записи числа 3^(2^(3^2)).
Решение задачи: «Найти все цифры десятичной записи числа»
textual
Листинг программы
type ts = 0..9; //тип цифры chislo=array[1..nmax] of ts;//массивы-числа procedure nul(var a:chislo); //обнуление числа var i:integer; begin for i:=1 to nmax do a[i]:=0; end; function kol(const a: chislo):integer;//определение длины числа var i:integer; begin i:=nmax; while(a[i]=0)and(i>1) do i:=i-1; kol:=i; end; procedure mult(var a,c:chislo);//собственно умножение var i,m:integer; p:0..9; v:byte; begin nul(c); m:=kol(a); for i:=1 to m do begin p:=0; //перенос v:=a[i]*3+p+c[i];//текущее число c[i]:=v mod 10;//пишем остаток p:=v div 10;//новый перенос end; c[i+1]:=p;//последний перенос for i:=1 to nmax do a[i]:=c[i]; //запомним полученное число end; procedure print(var a : chislo); //печать длинного числа var i:integer; begin for i:=kol(a) downto 1 do write(a[i]); end; var a,b,c:chislo;i,k:integer; begin a[1]:=3; b[1]:=3; for i:=2 to 512 do begin mult(a,c); for k:=1 to nmax do a[k]:=c[k]; end; print(c); end.
Объяснение кода листинга программы
- Создается тип данных
ts
, который представляет цифру от 0 до 9. - Создается массив
chislo
с максимальным значениемnmax
элементов типаts
. - Определяется процедура
nul
, которая обнуляет все элементы массиваchislo
. - Определяется функция
kol
, которая определяет длину числа, представленного в массивеchislo
. - Определяется процедура
mult
, которая выполняет умножение двух чисел, представленных в массивеchislo
. В этой процедуре используется циклfor
, который выполняет умножение и перенос цифр числа. - Определяется процедура
print
, которая печатает длинное число, представленное в массивеchislo
. В этой процедуре используется циклfor
, который печатает каждую цифру числа. - Создается переменная
a
и присваивается ей значение 3. - Создается переменная
b
и присваивается ей значение 3. - Запускается цикл
for
, который выполняет умножение чиселa
иb
и сохраняет результат в массивеc
. - После завершения цикла
for
выполняется процедураprint
, чтобы распечатать полученное число. - Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д