【发布时间】:2014-05-20 21:45:01
【问题描述】:
我喜欢得到我的目标可以分割的数字数量。 所以如果是 10,它应该返回 4,因为 10 可以被 1、2、5 和 10 整除。 我的尝试是这样,但它返回 1?哎哟
function FindeTeiler(Zahl : Integer) : Integer;
var
Amount, i: Integer;
begin
Amount := 0;
For i := 1 to Zahl do begin
If (i mod zahl = 0) then
begin
Amount := Amount +1;
end;
end;
Result := Amount;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Showmessage('The number ' + Edit1.text + ' has ' + IntToStr(FindeTeiler(StrToInt(Edit1.text))) + ' dividers.');
end;
【问题讨论】:
-
"所以在 10 的情况下它应该返回 10"。你的意思是“它应该返回 4”?另外,我认为您的
mod声明倒退了...尝试if (zahl mod 1) = 0) then -
编辑:已解决,它的工作原理如下:puu.sh/8Upz9/e0e17ee635.png
-
如果您自己解决了问题,则不应发布代码图像。只回答你自己的问题。顺便说一句,
if ... then中的布尔表达式不需要任何括号。
标签: delphi math numbers pascal divide