for i := 1 to 9999 do if Pos('4',IntToStr(i)) = 0 then ListBox1.Items.Add(IntToStr(i))
Function IsFour(IntNumber:integer):Boolean; var SNumber:String; iLength:Integer; i:integer; begin Result:=False; SNumber:=IntToStr(IntNumber); iLength:=Length(SNumber); for i:=1 to iLength do begin if SNumber[i]='4' then Result:=True; end; end;procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin for i:=1 to 50 do begin if not IsFour(i) then Memo1.Lines.Add(intToStr(i)); end; end;
方法1: procedure TForm1.GetNumber(s:string;i:integer); var j:integer; str:string; begin Inc(i); for j:=1 to 9 do begin str:=s+a[j]; if i<4 then begin GetNumber(str,i); end else begin if str<>'0000' then ListBox1.Items.Add(str); end; end; end;procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.Clear; GetNumber('',0); end;方法2: procedure TForm1.Button2Click(Sender: TObject); var i,j:integer; s:string; begin ListBox1.Items.Clear; for i := 1 to 9999 do begin s:=Inttostr(i); if Pos('4',s) = 0 then begin if Length(s)<4 then begin for j:=1 to 4-Length(s) do s:='0'+s; end; ListBox1.Items.Add(s); end; end; end;经测试:方法一效率明显好于方法二(位数越高,效果越明显),不信你试试!
if Pos('4',IntToStr(i)) = 0 then
ListBox1.Items.Add(IntToStr(i))
var
SNumber:String;
iLength:Integer;
i:integer;
begin
Result:=False;
SNumber:=IntToStr(IntNumber);
iLength:=Length(SNumber);
for i:=1 to iLength do
begin
if SNumber[i]='4' then
Result:=True;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=1 to 50 do
begin
if not IsFour(i) then
Memo1.Lines.Add(intToStr(i)); end;
end;
吃这么便宜的粉不怕拉肚子?
最后打印boolean变量为true的数。
procedure TForm1.GetNumber(s:string;i:integer);
var
j:integer;
str:string;
begin
Inc(i);
for j:=1 to 9 do
begin
str:=s+a[j];
if i<4 then
begin
GetNumber(str,i);
end
else
begin
if str<>'0000' then
ListBox1.Items.Add(str);
end;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Clear;
GetNumber('',0);
end;方法2:
procedure TForm1.Button2Click(Sender: TObject);
var
i,j:integer;
s:string;
begin
ListBox1.Items.Clear;
for i := 1 to 9999 do
begin
s:=Inttostr(i);
if Pos('4',s) = 0 then
begin
if Length(s)<4 then
begin
for j:=1 to 4-Length(s) do
s:='0'+s;
end;
ListBox1.Items.Add(s);
end;
end;
end;经测试:方法一效率明显好于方法二(位数越高,效果越明显),不信你试试!