从四位中取出不包含4的数。
从0001--- 9999中取出每一位中不包含4的数,程序怎么处理。实例附上。
感谢!!!!!!!!!!!!!
急需急需!!!!!!

解决方案 »

  1.   

    for i := 1 to 9999 do
       if Pos('4',IntToStr(i)) = 0 then 
          ListBox1.Items.Add(IntToStr(i))
      

  2.   

    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;
      

  3.   

    又晕,竟然忘记了用POS,狂晕,撞墙
      

  4.   

    LKJ99(路在自己的脚下...) :
    吃这么便宜的粉不怕拉肚子?
      

  5.   

    用Pos很简单就搞定了, LKJ99(路在自己的脚下...) 说的不错
      

  6.   

    设置一个boolean变量,逐位检查4位,如果有一位为4,则boolean变量为false,
    最后打印boolean变量为true的数。
      

  7.   

    方法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;经测试:方法一效率明显好于方法二(位数越高,效果越明显),不信你试试!