请把程序写出来,因为我有许多类似的问题。

解决方案 »

  1.   

    直接用Mathematica软件就可以搞定  N[Pai,1000]
      

  2.   

    对呀,找个跌代公式。但要考虑位数太多,超出real范围,可以用字符串存储结果。
      

  3.   

    function GetPi(const n: Cardinal): String;//取4 * n位的圆周率
    var
      a, b, c, d, e, f: Longint;
      g: array of Longint;
    begin
      SetLength(g, n * 14 + 1);
      a := 10000;
      b := 0;
      c := n * 14;
      d := 0;
      e := 0;
      while b - c < 0 do
      begin
        g[b] := a div 5;
        Inc(b);
      end;
      f := c * 2;
      while f <> 0 do
      begin
        b := c;
        d := d + g[b] * a;
        Dec(f);
        g[b] := d mod f;
        d := d div f;
        Dec(f);
        Dec(b);
        while b > 0 do
        begin
          d := d * b;
          d := d + g[b] * a;
          Dec(f);
          g[b] := d mod f;
          d := d div f;
          Dec(f);
          Dec(b);
        end;
        Dec(c, 14);
        Result := Result + Format('%.4d', [e + d div a]);
        e := d mod a;
        d := 0;
        f := c * 2;
      end;
      SetLength(g, 0);
    end;原版C程序,非常简洁long a=10000,b,c=3500,d,e,f,g[3501];for(;b-c;)g[b++]=a/5;
    for(;d=0,f=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)
    for(b=c;d+=g[b]*a,g[b]=d%--f,d/=f--,--b;d*=b);
    //取1000位
      

  4.   

    我在窗口加一个button和一个memo控件,在button下写入以下代码,运行时出现一个提示:
    out of memory。导致无法运行,要怎么解决呢?另外,请  ehom(?!) 把代码加一点注释。 procedure TForm1.Button1Click(Sender: TObject);
    var
    a, b, c, d, e, f,n : Longint;
    g: array of Longint;
    Result:string;
    begin
    SetLength(g, n * 14 + 1);
      a := 10;
      b := 0;
      c := n * 14;
      d := 0;
      e := 0;
      while b - c < 0 do
      begin
        g[b] := a div 5;
        Inc(b);
      end;
      f := c * 2;
      while f <> 0 do
      begin
        b := c;
        d := d + g[b] * a;
        Dec(f);
        g[b] := d mod f;
        d := d div f;
        Dec(f);
        Dec(b);
        while b > 0 do
        begin
          d := d * b;
          d := d + g[b] * a;
          Dec(f);
          g[b] := d mod f;
          d := d div f;
          Dec(f);
          Dec(b);
        end;
        Dec(c, 14);
        Result:= Result + Format('%.4d', [e + d div a]);
        e := d mod a;
        d := 0;
        f := c * 2;
      end;
      SetLength(g, 0);
      memo1.lines.Add(result);
    end;end.
      

  5.   

    我在窗口加一个button和一个memo控件,在button下写入以下代码,运行成功。谢谢ehom(?!) procedure TForm1.Button1Click(Sender: TObject);
    var
    a, b, c, d, e, f,n : Longint;
    g: array of Longint;
    Result:string;
    begin
    n:=1000;
    SetLength(g, n * 14 + 1);
      a := 10;
      b := 0;
      c := n * 14;
      d := 0;
      e := 0;
      while b - c < 0 do
      begin
        g[b] := a div 5;
        Inc(b);
      end;
      f := c * 2;
      while f <> 0 do
      begin
        b := c;
        d := d + g[b] * a;
        Dec(f);
        g[b] := d mod f;
        d := d div f;
        Dec(f);
        Dec(b);
        while b > 0 do
        begin
          d := d * b;
          d := d + g[b] * a;
          Dec(f);
          g[b] := d mod f;
          d := d div f;
          Dec(f);
          Dec(b);
        end;
        Dec(c, 14);
        Result:= Result + Format('%.1d', [e + d div a]);
        e := d mod a;
        d := 0;
        f := c * 2;
      end;
      SetLength(g, 0);
      memo1.lines.Add(result);
    end;end.
    按button的运行结果:314159265358979323846264338327941028841971693993751058209749445923078164062862089986271034825342117067982148086513282306647093844609550582231725359408128481117450284102610193852110555964462294895493038196442881097566593344612847564823378678316527111019091456485669234603486104543266482133936072510249141273724586100660631558817488152092096282925409171536436789258103591011330530548820466521384146951941511609433057261036575959195309218611738193261179310511854807446237996274956735188575272489122793818210119491298336733624406566430851021394946395224737190610217986094370277053921717629317675238467481846766940513191005681271452635608277857713427577896091736371787214684408101224953421014654958537105079227968925892354110199561121290219608631034418159813629774771309960518707211349999998372978049951059731732816096318594102445945534690821026425223082533446850352619311881701009910313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661291019278766111959092164110198