这个程序的中间while循环部分我不是看得很懂?
有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。这个程序的中间while循环部分我不是看得很懂? #include <iostream>
using namespace std;
void main()
{
int num;
cout<<"请输入人数"<<endl;
cin>>num;
int *pPeople = new int[num];
for(int i = 0;i<num;i++)
{
pPeople[i] = i + 1;
}
int count = num;
int index = 0;
int k = 1;
while(count>1)
{
if (pPeople[index] != 0)
{
if (k==3)
{
pPeople[index] = 0;
count --;
k = 1;
}
else
{
k++;
}
}
index ++;
index %= num;
}
for(int i=0;i<num;i++)
{
if (pPeople[i] != 0)
{
cout<<"剩下的这个人的编号是:"<<
pPeople[i]<<endl;
}
}
delete []pPeople;
}