使用命名空間std
mon類
{
私人:
int * monkey
int M;
int N;
公共:
mon(int x,int y):M(x),N(y)
{
monkey = new int[x];
}
void變號()
{ for(int I = 0;我& ltm;i++)
{
猴子[I]= I;//給猴子編號
}
}
void showall()
{ for(int I = 0;我& ltm;i++)
{
cout & lt& lt猴子[I]& lt;& lt”\ t”;
}
}
無效顯示()
{ int k = 1;
cout & lt& lt“之後”& lt& ltk & lt& lt次消除,剩下的猴子是:“& lt& ltendl
for(int I = 0;我& ltm;i++)
{
如果(猴子[我]!=0)
{
cout & lt& lt猴子[I]& lt;& lt”\ t”;
}
}
}
虛空提處()
{
int k = 1;//第k只猴子走了
int n =-1;//數組下標,下壹個是0,表示從第壹只猴子開始計數。
while(真)
{
//在圓圈中開始剔除
for(int j = 0;j & ltn;)
{
n =(n+1)% M;
如果(猴子[n]!=0) //如果猴子還在圈裏,參與計數。
{
j++;
}
}
If(k = = m)//如果所有的剔除都已完成,則跳出循環。
{
打破;
}
猴子[n]= 0;
show();
cout & lt& ltendl
k++;
}
// break語句跳轉到這壹點,輸出中獎號碼。
cout & lt& lt“那個號”. & lt& lt猴子;& lt“猴子是贏家。”& lt& ltendl
}
~ mon(){ delete[]猴子;}
};
void main()
{ int x;int y;
cout & lt& lt“輸入從猴子總數中隨機選擇的數字”
CIN & gt;& gtx;
CIN & gt;& gty;
mon a(x,y);
cout & lt& lt“在消滅之前,猴子們是:“& lt& ltendl
a .邊浩();
a . showall();
a . tichu();
}