有10个孩子站成一圈,从第一个孩子开始顺时针方向报数,报到3的人出列,下一个人继续从1报数,直到最后剩下一个孩子为止。问剩下第几个孩子。
#include "stdafx.h"
#include<iostream>
using namespace std;
int n;
int main()
{
int a[100],m,k,i;
cout<<"输入圈内人数:n=";
cin>>n;
for(i=0;i<n;i++)
a[i]=i+1;
i=0;
m=0;
k=0;
while(m<n-1)
{
if(a[i]!=0)
k++;
if(k==3)
{
a[i]=0; k=0; m++;
}
i++;
if(i==n) i=0;
}
for(i=0;i<n;i++)
if(a[i]!=0)
cout<<"最后剩下的是"<<a[i]<<"号"<<endl;
return 0;
}
#include "stdafx.h"
#include<iostream>
using namespace std;
int n;
int main()
{
int a[100],m,k,i;
cout<<"输入圈内人数:n=";
cin>>n;
for(i=0;i<n;i++)
a[i]=i+1;
i=0;
m=0;
k=0;
while(m<n-1)
{
if(a[i]!=0)
k++;
if(k==3)
{
a[i]=0; k=0; m++;
}
i++;
if(i==n) i=0;
}
for(i=0;i<n;i++)
if(a[i]!=0)
cout<<"最后剩下的是"<<a[i]<<"号"<<endl;
return 0;
}