Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
39
Task/Recamans-sequence/D/recamans-sequence.d
Normal file
39
Task/Recamans-sequence/D/recamans-sequence.d
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
import std.stdio;
|
||||
|
||||
void main() {
|
||||
int[] a;
|
||||
bool[int] used;
|
||||
bool[int] used1000;
|
||||
bool foundDup;
|
||||
|
||||
a ~= 0;
|
||||
used[0] = true;
|
||||
used1000[0] = true;
|
||||
|
||||
int n = 1;
|
||||
while (n <= 15 || !foundDup || used1000.length < 1001) {
|
||||
int next = a[n - 1] - n;
|
||||
if (next < 1 || (next in used) !is null) {
|
||||
next += 2 * n;
|
||||
}
|
||||
bool alreadyUsed = (next in used) !is null;
|
||||
a ~= next;
|
||||
if (!alreadyUsed) {
|
||||
used[next] = true;
|
||||
if (0 <= next && next <= 1000) {
|
||||
used1000[next] = true;
|
||||
}
|
||||
}
|
||||
if (n == 14) {
|
||||
writeln("The first 15 terms of the Recaman sequence are: ", a);
|
||||
}
|
||||
if (!foundDup && alreadyUsed) {
|
||||
writefln("The first duplicated term is a[%d] = %d", n, next);
|
||||
foundDup = true;
|
||||
}
|
||||
if (used1000.length == 1001) {
|
||||
writefln("Terms up to a[%d] are needed to generate 0 to 1000", n);
|
||||
}
|
||||
n++;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue