#include "iostream.h"
void playGame(int a1,int b)
{
int i = 1;
int n = 1;
int *a;
a = new int[a1];
for(int j = 1; j <= a1; j++)
{
a[j] = j;
}
int flag = b;
int Num = 0;
int aflag = a1 - 1;
cout<<"传递过来的值:"<<a1<<" "<<b<<endl;
cout<<"跳出圈的数字:"<<" ";
while(Num != aflag)
{
if(a[i] != 0)
{
if(n != flag)
{
i++;
n++;
}
else if(n == flag)
{
cout<<a[i]<<" ";
Num++;
a[i] = 0;
n = 1;
if(i = a1)
i = 1;
else
i++;
}
}
else if(a[i] == 0)
{
if(i != a1)
{
i++;
}
else if(i == a1)
{
i = 1;
}
}
}
cout<<endl;
}
int main(int argc, char* argv[])
{
int T1,T2;
int flag = 1;
while(flag != 0)
{
cin>>T1>>T2;
playGame(T1,T2);
cout<<"按0退出!!!!!!!!!!!"<<endl;
cin>>flag;
}
return 0;
}
void playGame(int a1,int b)
{
int i = 1;
int n = 1;
int *a;
a = new int[a1];
for(int j = 1; j <= a1; j++)
{
a[j] = j;
}
int flag = b;
int Num = 0;
int aflag = a1 - 1;
cout<<"传递过来的值:"<<a1<<" "<<b<<endl;
cout<<"跳出圈的数字:"<<" ";
while(Num != aflag)
{
if(a[i] != 0)
{
if(n != flag)
{
i++;
n++;
}
else if(n == flag)
{
cout<<a[i]<<" ";
Num++;
a[i] = 0;
n = 1;
if(i = a1)
i = 1;
else
i++;
}
}
else if(a[i] == 0)
{
if(i != a1)
{
i++;
}
else if(i == a1)
{
i = 1;
}
}
}
cout<<endl;
}
int main(int argc, char* argv[])
{
int T1,T2;
int flag = 1;
while(flag != 0)
{
cin>>T1>>T2;
playGame(T1,T2);
cout<<"按0退出!!!!!!!!!!!"<<endl;
cin>>flag;
}
return 0;
}
#include "iostream.h"
void playGame(int a1,int b)
{
int ac =a1;
int i = 1;
int n = 1;
int *a;
a = new int[ac];
for(int j = 1; j <= a1; j++)
a[j] = j;
int flag = b;
int Num = 0;
int aflag = a1 - 1;
cout<<endl;
cout<<"传递过来的值:"<<a1<<" "<<b<<endl;
cout<<"跳出圈的数字:"<<" ";
while(Num != aflag)
{
if(a[i] == 0)
{
if(i < a1)
i++;
else
i = 1;
}
else
{
if(n != flag)
{
n++;
if(i < a1)
i++;
else
i = 1;
}
else
{
cout<<a[i]<<" ";
a[i] = 0;
n = 1;
Num++;
if(i < a1)
i++;
else
i = 1;
}
}
}
cout<<endl;
i = 1;
while(a[i] == 0)
i++;
cout<<"LUCKY BOY IS: "<<a[i]<<endl;
}
int main(int argc, char* argv[])
{
int T1,T2;
int dflag = 1;
while(dflag != 0)
{
cin>>T1>>T2;
if(T1 < T2)
{
cout<<"请输入T1>T2的两个数!!"<<endl;
continue;
}
playGame(T1,T2);
cout<<"按0和字符退出!!!!!!!!!!!"<<endl;
cin>>dflag;
}
return 0;
}这是我改版后的..总算正常了..请大家评评怎么样呀...
void playGame(int n,int m)
{
bool* bExists = new bool[n]; //标识是否已经出圈
for(int i=0;i<n;i++)bExists[i]=true;
int existMen = n; //没有出圈的人数
int lastMan; //标识最后一个人
int num; //报号
int startIndex = 0; //当前报号的人
while(existMen > 1)
{
num = 0;
while(num<m)
{
if(bExists[startIndex%n])
{
if(num+1 < m)
{
cout<<startIndex%n+1<<"号:"<<++num<<" 还好,还好……"<<endl;
lastMan = startIndex;
}
else
{
cout<<startIndex%n+1<<"号:"<<++num<<" 太不幸了,出圈了,555"<<endl;
bExists[startIndex%n] = false;
existMen --;
}
}
startIndex ++;
} }
cout<<lastMan%n+1<<"号:我得儿意的笑,得儿意的笑 ^_^"<<endl;
}
int main(int argc, char* argv[])
{
int T1,T2;
int dflag = 1;
while(dflag != 0)
{
cout<<"请输入总人数:";
cin>>T1;
cout<<"跳出圈的数字(不大于总人数):" ;
cin>>T2;
if(T1 < T2)
{
cout<<"跳出圈的数字不能大于总人数!"<<endl;
continue;
}
playGame(T1,T2);
cout<<"按0和字符退出!!!!!!!!!!!"<<endl;
cin>>dflag;
}
return 0;
}