回 帖 发 新 帖 刷新版面

主题:求讲解下面这段程序,要详细点的

#include<iostream>
using namespace std;
int sum(int a[],int x)
{
    int i,b=0;
    for(i=0;i<x;i++)b=b+a[i];
    return b;
}
int main()
{
    int a[100],m,n,i,b=-1;
    cin>>m>>n;
    for(i=0;i<m;i++)a[i]=1;
    while(sum(a,m)!=1)
    {
        for(i=0;i<n;i++)
        {
            b++;
            if(b==m)b=0;
            if(a[b]==0)i--;
        }
        a[b]=0;
        cout<<b+1<<"号淘汰\n";
    }
    for(i=0;a[i]==0;i++);
    cout<<i+1<<"号为大王\n";
    return 0;
}

回复列表 (共2个回复)

沙发

目测是约瑟夫环。

板凳


是啊讲来听听这段程序

我来回复

您尚未登录,请登录后再回复。点此登录或注册