c原码
long 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);} 
-----------------------------------------------------------
delphi:
procedure TForm1.Button3Click(Sender: TObject);
var b, c, d, e: Cardinal;
    f: array[0..2800] of Cardinal;
    i:Integer;
    S:string;
begin
     s := '' ;
     e := 0 ;
     for i := 0 to 2799 do
       begin
       f[i] := 2000;
       end ; //of for
     f[2800] := 0;     c := 2800 ;
     while c > 0 do
       begin
       d := 0 ;
       for b := c downto 1 do
         begin
         d := d + f[b] * 10000;
         f[b] := d mod (2 * b - 1);
         d := d div (2 * b - 1);
         if b > 1 then
            d := d * (b - 1);
         end ; //of for       S := S + Format('%.4d', [trunc(e + d / 10000)]) ;
       e := d mod 10000 ;       Dec(c, 14);
       end ; //of while
     Memo1.Lines.Add(s)
end;怎么能更精简,不要考虑可读性!

解决方案 »

  1.   

    你的C的语句不也有一些潜在性的错误吗???比如: for(;b-c;)   请注意b在之前是没有初始化值的谁写的C,看了头晕。for i := 0 to 2799 do
      //  begin
      f[i] := 2000;
      //end;
      //of for
    for i := 0 to 2799 do f[i] := 2000;毫无意义!
      

  2.   

    delphi1234567(我要学DELPHI) 我不懂C,你更不懂!
      

  3.   

    breezing(上帝死了 众神在堕落) 我不懂C,你更不懂!
    莫非C的INT/LONG全局变量也是初始化为 0 ??? 如果你知道的话。