#include
int main()
{
void gaid(int number1,int number2);
int n,m;
printf("请输入参与游戏人数:\n");
scanf("%d",&n);
printf("请输入每次游戏第几人被淘汰出局:\n");
scanf("%d",&m);
gaid(n,m);
return 0;
}
void gaid(int number1,int number2)
{
int arr[number1],*p=arr,i,flage=0,sum=0;
for(i=0;i<number1;i++) //给数组依次写入从1开始的数
{
arr[i]=i+1;
}
while(number1!=1)
{
while(flage<number2)
{
if(p==&arr[number1]) //当指针指到数组最后一个时把指针指回数组首位置
{
p=&arr[0];
}
if(*p!=0) //这个指针所指的值不为零时计数器加一位
{
flage++;
}
if(flage<number2) //当达到要被踢的位置时,指针不向下一位移动
{
p++;
}
}
if(flage==number2) //当达到要被踢的位置时,计数器重新清零,指针所指值变为零
{
flage=0;
*p=0;
number1-=1;
}
}
for(i=0;i<number1;i++) //循环完毕后,把数组中所有值之和加起来,其和就是原 游戏者的序号
{
sum+=arr[i];
}
printf("%d",sum);
}