#include
#include
int main()
{
int n=15,k=3,i,x; //n为开始人数 k表示数到三将淘汰一个人 x表示将军能存活的位置
int c[16]={0}; //c[16]表示15个人c[i]=0为活 c[i]=1为已死 由于下面循环是从标号一开始所以数组要多出一个
int s=0,value=0; //s在下面循环中发挥作用当s=k=3时淘汰一人 value表示已经死亡人数
while(value!=n-1)
{
for(i=1;i<=n;i++)
{
if(c[i]==0&&s
s++;
if(s==k) //当s=3时淘汰当前人c[i]令c[i]=1
{
c[i]=1;
s=0;
value++;//死亡人数增加
}
}
}
}
for(i=1;i<=n;i++) //循环找出存活位置
if(c[i]==0)
x=i;
printf("%d",x);
return 0;
}