Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
50
Task/Josephus-problem/Objeck/josephus-problem.objeck
Normal file
50
Task/Josephus-problem/Objeck/josephus-problem.objeck
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
class Josephus {
|
||||
function : Execute(n : Int, k : Int) ~ Int {
|
||||
killIdx := 0;
|
||||
prisoners := Collection.IntVector->New();
|
||||
for(i := 0;i < n;i+=1;){
|
||||
prisoners->AddBack(i);
|
||||
};
|
||||
|
||||
"Prisoners executed in order:"->PrintLine();
|
||||
while(prisoners->Size() > 1){
|
||||
killIdx := (killIdx + k - 1) % prisoners->Size();
|
||||
executed := prisoners->Get(killIdx);
|
||||
"{$executed} "->Print();
|
||||
prisoners->Remove(killIdx);
|
||||
};
|
||||
'\n'->Print();
|
||||
return prisoners->Get(0);
|
||||
}
|
||||
|
||||
function : ExecuteAllButM(n : Int, k : Int, m : Int) ~ Collection.IntVector {
|
||||
killIdx := 0;
|
||||
prisoners := Collection.IntVector->New();
|
||||
for(i := 0;i < n;i+=1;){
|
||||
prisoners->AddBack(i);
|
||||
};
|
||||
"Prisoners executed in order:"->PrintLine();
|
||||
while(prisoners->Size() > m){
|
||||
killIdx := (killIdx + k - 1) % prisoners->Size();
|
||||
executed := prisoners->Get(killIdx);
|
||||
"{$executed} "->Print();
|
||||
prisoners->Remove(killIdx);
|
||||
};
|
||||
'\n'->Print();
|
||||
return prisoners;
|
||||
}
|
||||
|
||||
function : Main(args : String[]) ~ Nil {
|
||||
result := Execute(41, 3);
|
||||
"Survivor: {$result}"->PrintLine();
|
||||
|
||||
results := ExecuteAllButM(41, 3, 3);
|
||||
"Survivors: "->Print();
|
||||
each(i : results) {
|
||||
results->Get(i)->Print();
|
||||
if(i + 1 < results->Size()) {
|
||||
' '->Print();
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue