Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
36
Task/Josephus-problem/Processing/josephus-problem.processing
Normal file
36
Task/Josephus-problem/Processing/josephus-problem.processing
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
void setup() {
|
||||
println("Survivor: " + execute(41, 3));
|
||||
println("Survivors: " + executeAllButM(41, 3, 3));
|
||||
}
|
||||
|
||||
int execute(int n, int k) {
|
||||
int killIdx = 0;
|
||||
IntList prisoners = new IntList(n);
|
||||
for (int i = 0; i < n; i++) {
|
||||
prisoners.append(i);
|
||||
}
|
||||
println("Prisoners executed in order:");
|
||||
while (prisoners.size() > 1) {
|
||||
killIdx = (killIdx + k - 1) % prisoners.size();
|
||||
print(prisoners.get(killIdx) + " ");
|
||||
prisoners.remove(killIdx);
|
||||
}
|
||||
println();
|
||||
return prisoners.get(0);
|
||||
}
|
||||
|
||||
IntList executeAllButM(int n, int k, int m) {
|
||||
int killIdx = 0;
|
||||
IntList prisoners = new IntList(n);
|
||||
for (int i = 0; i < n; i++) {
|
||||
prisoners.append(i);
|
||||
}
|
||||
println("Prisoners executed in order:");
|
||||
while (prisoners.size() > m) {
|
||||
killIdx = (killIdx + k - 1) % prisoners.size();
|
||||
print(prisoners.get(killIdx) + " ");
|
||||
prisoners.remove(killIdx);
|
||||
}
|
||||
println();
|
||||
return prisoners;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue