fork(60) download
  1. #include <iostream>
  2. using namespace std;
  3. // Josephus Problem
  4.  
  5. int josephusRecursion(int n,int k) {
  6. if(n==1)
  7. return 1;
  8. return (josephusRecursion(n-1,k)+k-1)%n+1;
  9. }
  10.  
  11. int josephusIteration(int n,int k) {
  12. /*int a=0;
  13. for(int i=2;i<=n;i++) {
  14. a=(a+k)%i+1;
  15. cout<<a<<endl;
  16. }
  17. return a+1;*/
  18. int a = 0;
  19. for(int i=1;i<n;i++) {
  20. a = (a+k)%(i+1)+1;
  21. }
  22. return a;
  23. }
  24.  
  25. int main() {
  26. // your code goes here
  27. int n,k;
  28. cin>>n>>k;
  29. cout<<"Josephus result : "<<josephusRecursion(n,k)<<endl;
  30. cout<<"Josephus result : "<<josephusIteration(n,k)<<endl;
  31. return 0;
  32. }
Success #stdin #stdout 0s 3416KB
stdin
5 2
stdout
Josephus result : 3
Josephus result : 2