解题思路:
开一个两行数组,第二行标记该数是否已删除,删至只剩一个数时停止,
外层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 人评分
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:699 |
【排队买票】 (C语言代码)浏览:944 |
DNA (C语言描述,数据结构)浏览:909 |
1908题解浏览:680 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:1100 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:581 |
C语言训练-排序问题<1> (C语言代码)浏览:369 |
WU-C语言程序设计教程(第三版)课后习题12.3 (C++代码)浏览:925 |
C语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:419 |
1415题求解浏览:681 |