解题思路:
注意事项:
参考代码:
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int a[n+2];
for(int i=1;i<=n;i++)//初始化
{
a[i]=i;
}
int count=n;//记录当前的个数,如果个数变为一时,说明找到了
int s=0;//计数器的存在,到了第三个时就进行删除操作
for(int i=1;;i++)//中间给空语句,让它一直跑下去
{
if(a[i%n]!=0)//取余数,确保一直在数组的范围内,避免非法访问
{
s++;
if(s==3)//删除操作
{
a[i%n]=0;
count--;
s=0;//类似于回溯
}
}
if(count==1)//循环终止条件
break;
}
for(int i=1;i<=n;i++)
{
if(a[i]!=0)
{
printf("%d",a[i]);
break;
}
}
return 0;
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:690 |
C语言训练-字符串正反连接 (C语言代码)浏览:664 |
C语言训练-排序问题<2> (C++代码)浏览:935 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:631 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:956 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:1482 |
用筛法求之N内的素数。 (C语言代码)浏览:711 |
1126题解浏览:649 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:721 |
勾股数 (C语言代码)浏览:830 |