//N个数围一圈,从第一数开始,数到n的数据摘除,从新开始数,直至无法摘除数据为止
//N=100,n=4
#include<stdio.h>
#defineN 100
#definen 4
int
main()
{
inta[N];
intaa=0;
intj=0;
intflag=0;
for (inti=0;i<100;i++)
a[i]=i;
printf("摘除的数据:\n");
while(flag<N)
{
if(a[j]!=-1)
{
aa=aa+1;
if(aa==n)
{
a[j]=-1;
flag=flag+1;
printf("%d\t",j); //摘除的数据
aa=0;
}
}
j=j+1;
if(j==N)
j=0;
}
return 1;
}
//初学者伤不起啊
#include<iostream>
using namespace std;
void deletemthelement(int n,int m)
{
if(n<1 && m<1)
return;
int ch[n];
for(int i=0;i<n;i++)
ch[i]=0;
int sum=n;
int flag=0;
int i=0;
while(sum>1)
{
if(ch[i]==0)
{
flag++;
if(flag==m)
{
flag=0;
ch[i]=-1;
sum--;
}
}
i++;
if(i==n)
i=0;
}
for(int j=0;j<n;j++)
if(ch[j]==0)
cout<<j;
}
int main()
{
deletemthelement(5,3);
return 0;
}