RosettaCodeData/Task/Hofstadter-Q-sequence/PascalABC.NET/hofstadter-q-sequence.pas
2025-02-27 18:35:13 -05:00

16 lines
341 B
ObjectPascal

##
var q := |1, 1|.ToList;
for var n := 2 to 100_000 do
q.add(q[n - q[n - 1]] + q[n - q[n - 2]]);
q.take(10).println;
assert(q.Take(10).SequenceEqual(|1, 1, 2, 3, 3, 4, 5, 5, 6, 6|));
q[999].println;
assert(q[999] = 502);
var lessCount := 0;
for var n := 1 to 100_000 do
if q[n] < q[n - 1] then
lessCount += 1;
lessCount.Println;