解题思路:
注意事项:
参考代码:
#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语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:968 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:1272 |
DNA (C语言描述,数据结构)浏览:870 |
C语言考试练习题_一元二次方程 (C语言代码)浏览:595 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:589 |
C语言程序设计教程(第三版)课后习题9.3 (C语言代码)浏览:2096 |
Tom数 (C语言代码)浏览:546 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:1482 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:562 |
【计算直线的交点数】 (C语言代码)浏览:938 |