约瑟夫环

用数组表示

 1 #include<iostream>
 2 
 3 using namespace std;
 4 
 5 int main(){
 6     int a[30];
 7     bool visited[30]; 
 8     for(int i=0; i<30; i++){
 9         cout<<i+1<<" ";
10         a[i] = i;
11         visited[i] = false;
12     }
13     cout<<endl;
14     
15 //    每个人数的数 
16     int step = 0;
17 //    用来执行大循环 
18     int cir = 0;
19 //    计算出局的人数
20     int total = 0;
21     
22     while(total < 30){
23         if(visited[cir] == false){
24             step = (step + 1)%7;
25             if(step == 0){
26                 visited[cir] = true;
27                 total++;
28                 cout<<cir+1<<" ";
29             }
30         }
31         cir = (cir+1)%30;
32         
33     } 
34 }
View Code
原文地址:https://www.cnblogs.com/zhishoumuguinian/p/11853055.html