解题思路:
注意事项:
参考代码:
#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语言代码)浏览:658 |
求组合数 (C语言代码)浏览:1178 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1173 |
三角形 (C++代码)递推浏览:776 |
C语言程序设计教程(第三版)课后习题6.5 (C++代码)浏览:472 |
WU-C语言程序设计教程(第三版)课后习题11.12 (C++代码)(想学链表的小伙伴可以看看)浏览:927 |
【计算两点间的距离】 (C语言代码)浏览:1503 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:689 |
Tom数 (C语言代码)浏览:547 |
C二级辅导-进制转换 (C语言代码)浏览:702 |