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;
var i, iRes: Integer; begin iRes := 0; for i := 0 to 100 do inc(iRes, i); ShowMessage(IntToStr(iRes)) end;终于遇到一个会的!
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; 或者直接用等差数列的求和公式来做?
var sum:Integer;procedure Add(i:Integer); begin sum:=sum+i; if i<100 then Add(i+1); end;
function sum1to100:integer; begin result:=1+2+3+4+5+6+7+....+100; end;
Result := (0 + 100) div 2 * 101;
var i,j:integer; begin i:=0; j:=0; while i<100 do begin i:=i+1; j:=j+i endend;
还有一个算法: 在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里的算法: 做不出来,
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;
i, iRes: Integer;
begin
iRes := 0;
for i := 0 to 100 do inc(iRes, i);
ShowMessage(IntToStr(iRes))
end;终于遇到一个会的!
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;
或者直接用等差数列的求和公式来做?
var
sum:Integer;procedure Add(i:Integer);
begin
sum:=sum+i;
if i<100 then Add(i+1);
end;
begin
result:=1+2+3+4+5+6+7+....+100;
end;
begin
i:=0;
j:=0;
while i<100 do
begin
i:=i+1;
j:=j+i
endend;
抛开delphi不说,试问基本语法不会还算程序员吗?
问这种愚昧的问题,你们不觉得好笑吗?
看了一笑了之就行了,还发代码上来,让人家耻笑了吧?
在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里的算法:
做不出来,
3楼采用模块化设计,把“加”运算封装在一个函数中,扩展性好,如“加”变为其他算法,只需改动这个函数,不会影响程序其他部分。不过就这一算法的复杂度而言,有牛刀杀鸡之嫌。
7楼则相当于把3楼算法改为递归实现,代码更简洁,可读性强一些这个开销最小,但写起来最累15楼的和1楼、2楼本质一样,只是将for循环改成了while20楼是将7楼的递归算法用VB语法重新表达了25楼是开玩笑~