请把程序写出来,因为我有许多类似的问题。
解决方案 »
- 问题: 关于Free, FreeAndNil, Nil的判断,构造函数中产生异常? 非常困惑人
- 请问DBGridEh能根据表头来筛选吗?像excel中一样的筛选功能吗
- 求一ADO连SQLSERVER的小程序
- 如何将excel表中的数据,取出来,导入到SQL Server 2000数据库中去!
- 条码控件
- 如何可將組件面板設為多行顯示?
- delphi ADOQuery if语句,DBGrid该行或该单元背景色如何变红,请贵人解答!
- 关于制作VCL的问题,请高手指点!多谢。
- delphi+oracle数据库的查询
- SOS!!!!紧急求助!!!!如何查杀FunLove 40 ,4096
- 有个十六进制小数,如何转化为十进制小数
- 我提议:大家报一下现在各自的分数,有利于提高问答的积极性。
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位
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.
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