delphi的算法问题,从0加到100怎么写,具体流程是什么

解决方案 »

  1.   


    procedure TForm1.Button1Click(Sender: TObject);
    var i,j:Integer;
    begin
      Memo1.Clear;
      j :=0;
      for i:=0 to 100 do
      begin
        j :=j+i;
        Memo1.Lines.Add(IntToStr(j));
      end;
    end;
      

  2.   

    var
        i, iRes: Integer;
    begin
        iRes := 0;
        for i := 0 to 100 do inc(iRes, i);
        ShowMessage(IntToStr(iRes))
    end;终于遇到一个会的!
      

  3.   

    function add(i: Integer): Integer;
    begin
      case i of
        0: Result := 0
        else Result := Result + i;
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      i,j: Integer;
    begin
      for i:= 0 to 100 do
      begin
        j := add(i);
      end;
      ShowMessage(IntToStr(j));
    end;
    或者直接用等差数列的求和公式来做?
      

  4.   


    var
      sum:Integer;procedure Add(i:Integer);
    begin
      sum:=sum+i;
      if i<100 then  Add(i+1);
    end;
      

  5.   

    function sum1to100:integer;
    begin
      result:=1+2+3+4+5+6+7+....+100;
    end;
      

  6.   

    Result := (0 + 100) div 2 * 101;
      

  7.   

    var i,j:integer;
    begin
    i:=0;
    j:=0;
       while i<100 do
       begin
         i:=i+1;
         j:=j+i
       endend;
      

  8.   

    楼上的十几位,真可怜,明知道人家耍你Delphi开发人员,还在那里不厌其烦的发代码!
    抛开delphi不说,试问基本语法不会还算程序员吗?
    问这种愚昧的问题,你们不觉得好笑吗?
    看了一笑了之就行了,还发代码上来,让人家耻笑了吧?
      

  9.   

    该ID gaibianyiqie已被大版封杀
      

  10.   

    还有一个算法:
    在VB里的算法
    Function a(i As Integer)
    a = a + i
    If i < 100 Then
    i = i + 1
    a = a + a(i)
    End If
    End Function
    Private Sub Form_Load()
    Me.Caption = a(0)
    End Sub在DELPH里的算法:
    做不出来,
      

  11.   

    还是忍不住要来评点一下,仅供娱乐,不当之处各位海涵数学的力量14楼以上的都属穷举法其中1楼、2楼写法较普遍,区别是1楼在循环中把中间结果都显示出来了;2楼使用INC内置函数,执行效率略高一些。
    3楼采用模块化设计,把“加”运算封装在一个函数中,扩展性好,如“加”变为其他算法,只需改动这个函数,不会影响程序其他部分。不过就这一算法的复杂度而言,有牛刀杀鸡之嫌。
    7楼则相当于把3楼算法改为递归实现,代码更简洁,可读性强一些这个开销最小,但写起来最累15楼的和1楼、2楼本质一样,只是将for循环改成了while20楼是将7楼的递归算法用VB语法重新表达了25楼是开玩笑~