解题思路:
开一个两行数组,第二行标记该数是否已删除,删至只剩一个数时停止,
外层while循环里套for循环使数组转圈。
注意事项:
参考代码:
#include<stdio.h>
int main()
{
int arr[10001][2];
int n,i,j=0;
scanf("%d",&n);
for(i=1; i<=n; i++)
{
arr[i][0]=i;
arr[i][1]=1;
}
int k=0,flag=0;
while(1)
{
for(i=1; i<=n; i++)
{
if(arr[i][1]!=0)
{
k++;
if(k%3==0)
{
arr[i][1]=0;
flag++;
if(flag==n-1)
goto EE;
}
}
}
}
EE:
for(i=1; i<=n; i++)
{
if(arr[i][1]!=0)
{
printf("%d",i);
}
}
return 0;
}
0.0分
0 人评分