首页 > 技术文章 > 约瑟夫环

ydcwp 2020-10-23 19:05 原文

https://www.dotcpp.com/oj/problem1655.html

写一道水题

这个题主要是练习循环定义的

1.变量的含义

a[N]表示当前小朋友状态,0存在 ,1不存在

num当前的数

i当前的小朋友序号

count当前出列的个数(退出循环的条件)

2.循环的含义

如果此状态位是0正常处理,else后加。

#include<iostream>
#include<stdio.h>
#include<math.h>
#include<algorithm>
#define N 10002
using namespace std;
int main(){
    int n;
    int a[N]={0},num,i,count;
    cin>>n;
    num=1,i=1,count=0;
    while(1){
        if(a[i]==0){
            if(num==3){
                a[i]=1;
                count++;
                if(count==n){
                    cout<<i;
                    break; 
                }    
            }
            num=num%3+1;
        }
        i=i%n+1;
    }
    return 0;
} 

 

推荐阅读