var m,N,i,res,j:integer;
A: array[0 .. 10000] of integer;
P: array[0 .. 10000] of integer;
perenos: array[0 .. 10000] of integer;
begin
write('введите N: ');
readln(N);
j:=1;
A[1]:=1;
P[0]:=0;
for i:= 1 to N do
begin
for j:=1 to 10 do
begin
A[j]:=(A[j]*N + P[j-1]) mod 1000;
P[j]:=(A[j]*N + P[j-1]) div 1000;
writeln('-j ',j);
end;
end;
for m:= 1 to N do
begin
writeln('член массива ', m, ': ', A[m]);
end;
end.
помогите вычислить n в степени n.
Здравствуйте, помогите вычислить n в степени n. В общем нужна тут длинная арифметика, как я понял. Есть кое-какие наброски, но результат неверный выходит.
Вопрос в том, какая точность нужна, и какая область определения/значений. Если n <= примерно 14, то можно обойтись 64-битовыми целыми. Если точность не так важна - то можно использовать double (+ отдельное преобразование показателя, если надо). Иначе - длинная арифметика. Но при этом не пытаться делать цикл умножений от 1 до n... Хотя бы ограничиться log n умножениями :)
Код:
var n,step,i:integer;
Begin
step :=1;
for i:=1 to n do
step := step * n
end;
Begin
step :=1;
for i:=1 to n do
step := step * n
end;