В принципе как может показаться программка нетрудная. Но я наверное не обладаю знаниями такими чтобы написать её. Смысл програмки такой: Найти 100 первых правильных знаков числа Пи, и желательно чтобы программа была маленькая, и понятная, без сложностей.
Кому интересно пожалуста помогите.
Заранее спасибо.
P.S.:И пожалуста не пишите проги которые вычисляют 1000 и более цифр числа Пи, мне просто позарез нужна прога маленькая несложная.
http://forum.pascal.net.ru/index.php?showtopic=12884
Поиск и еще раз поиск
Дубликат ? http://forum.pascal.net.ru/index.php?showtopic=12884&hl=
Да нет та тема тоже моя но та прога очень сложная и непонятная
если бы кто объяснил её алгоритм то другое дело
http://forum.pascal.net.ru/index.php?showtopic=2428
http://ru.wikipedia.org/wiki/Пи#.D0.A1.D0.BF.D0.BE.D1.81.D0.BE.D0.B1.D1.8B_.D0.B2.D1.8B.D1.87.D0.B8.D1.81.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F
Интересная информация: самая короткая рабочая программа, вычисляющая 800 знаков числа Пи:
int a=10000,b,c=2800,d,e,f[2801],g;main(){for(;b-c;)f[b++]=a/5;
for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)for(b=c;d+=f[b]*a, f[b]=d%--g,d/=g--,--b;d*=b);}
const
a = 10000;
c: longint = 2800;
var
b, d, e, g: longint;
f: array[0 .. 2800] of longint;
begin
while b - c <> 0 do begin
f[b] := a div 5; inc(b);
end;
while true do begin
d := 0; g := 2 * c;
if g = 0 then break;
b := c;
while true do begin
inc(d, f[b] * a);
dec(g); f[b] := d mod g;
d := d div g; dec(g);
dec(b);
if b = 0 then break;
d := d * b;
end;
dec(c, 14);
write(e + d div a);
e := d mod a;
end;
end.
const
a = 10000;
var
c,b, d, e: longint;
f: array[0 .. 2800] of longint;
begin
writeln;
for b:=0 to 2800 do f[b] := 2000;
for c:=200 downto 1 do begin
d := 0;
for b:=c*14 downto 1 do begin
d := d * b;
inc(d, f[b] * a);
f[b] := d mod (b*2-1);
d := d div (b*2-1);
end;
write(e + d div a);
e := d mod a;
end;
end.