Найти все цифры десятичной записи числа - 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.

Объяснение кода листинга программы

  1. Создается тип данных ts, который представляет цифру от 0 до 9.
  2. Создается массив chislo с максимальным значением nmax элементов типа ts.
  3. Определяется процедура nul, которая обнуляет все элементы массива chislo.
  4. Определяется функция kol, которая определяет длину числа, представленного в массиве chislo.
  5. Определяется процедура mult, которая выполняет умножение двух чисел, представленных в массиве chislo. В этой процедуре используется цикл for, который выполняет умножение и перенос цифр числа.
  6. Определяется процедура print, которая печатает длинное число, представленное в массиве chislo. В этой процедуре используется цикл for, который печатает каждую цифру числа.
  7. Создается переменная a и присваивается ей значение 3.
  8. Создается переменная b и присваивается ей значение 3.
  9. Запускается цикл for, который выполняет умножение чисел a и b и сохраняет результат в массиве c.
  10. После завершения цикла for выполняется процедура print, чтобы распечатать полученное число.
  11. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5
Похожие ответы