刚开始没看懂题目的意思:其实它已经 把1给去掉了 我的思路是把1给补回来 让2变成1 以此类推 只要保证
1不被删除 就是题目的解
#include<stdio.h>
#include<string.h>
#define max 151
int ans[max];
int main()
{
int test;
while(scanf("%d",&test),test)
{
test--;
int m=1;
memset(ans,0,sizeof(ans));
for(int i=1; i<=test-1; i++)//代表删除的人数
{
ans[i]=(ans[i-1]+m-1)%(test-i+1);
if(ans[i]<1)//判断是否满足条件
{
i=0;
m++;
}
}
printf("%d\n",m);
}
return 0;
}