Magic constant: Difference between revisions
Content added Content deleted
Alextretyak (talk | contribs) (Added 11l) |
No edit summary |
||
Line 489: | Line 489: | ||
next e |
next e |
||
end</syntaxhighlight> |
end</syntaxhighlight> |
||
=={{header|Delphi}}== |
|||
{{works with|Delphi|6.0}} |
|||
{{libheader|SysUtils,StdCtrls}} |
|||
<syntaxhighlight lang="Delphi"> |
|||
function GetMagicNumber(N: double): double; |
|||
begin |
|||
Result:=N * (((N * N) + 1) / 2); |
|||
end; |
|||
function GetNumberLess(N: double): integer; |
|||
var M: double; |
|||
begin |
|||
for Result:=1 to High(Integer) do |
|||
begin |
|||
M:=GetMagicNumber(Result); |
|||
if M>N then break; |
|||
end; |
|||
end; |
|||
procedure ShowMagicNumber(Memo: TMemo); |
|||
var I,J: integer; |
|||
var N,M: double; |
|||
var S: string; |
|||
begin |
|||
S:=''; |
|||
for I:=3 to 23 do |
|||
begin |
|||
S:=S+Format('%8.0n',[GetMagicNumber(I)]); |
|||
if (I mod 5)=2 then S:=S+#$0D#$0A; |
|||
end; |
|||
Memo.Lines.Add(S); |
|||
Memo.Lines.Add(''); |
|||
Memo.Lines.Add('1000th: '+Format('%8.0n',[GetMagicNumber(1002)])); |
|||
Memo.Lines.Add(''); |
|||
N:=10; |
|||
for I:=1 to 20 do |
|||
begin |
|||
J:=GetNumberLess(N); |
|||
Memo.Lines.Add('M^'+Format('%d%8d',[I,J])); |
|||
N:=N * 10; |
|||
end; |
|||
end; |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
15 34 65 111 175 |
|||
260 369 505 671 870 |
|||
1,105 1,379 1,695 2,056 2,465 |
|||
2,925 3,439 4,010 4,641 5,335 |
|||
6,095 |
|||
1000th: 503,006,505 |
|||
M^1 3 |
|||
M^2 6 |
|||
M^3 13 |
|||
M^4 28 |
|||
M^5 59 |
|||
M^6 126 |
|||
M^7 272 |
|||
M^8 585 |
|||
M^9 1260 |
|||
M^10 2715 |
|||
M^11 5849 |
|||
M^12 12600 |
|||
M^13 27145 |
|||
M^14 58481 |
|||
M^15 125993 |
|||
M^16 271442 |
|||
M^17 584804 |
|||
M^18 1259922 |
|||
M^19 2714418 |
|||
M^20 5848036 |
|||
</pre> |
|||