解题思路:

注意事项:

参考代码:

#include

int main()

{

int arr[201];

int n,i,j;

scanf ("%d",&n);

for (i=0;i<n;i++)    //将输入的数按1到自身的顺序存入数组 

{

arr[i]=i+1;

}

int out=0;           //出局的人数 

int bs=0;            //报数 

while (out!=n-1)     //出局的人剩下一个的时候退出循环 

{

for (j=0;j<n;j++)//遍历数组  

{

if (arr[j]==0)

{

continue; //如果遍历的这个数已经变成0,跳过这个数 

}

bs++;             //每过一个人报数+1 

if(bs==3)         //当报数为3的时候让这次的数变成0 

{

arr[j]=0; 

out++;        //并且出局人数加1 

bs=0;         //重置报数 

}

if (j==n)

{

j=0;

}                 //如果遍历完了从头来过,但报的数不重置 

if (out==n-1)break;//如果剩下最后一个人跳出循环 

}

    }

for (int r=0;r<n;r++)

{

if (arr[r]!=0)

{

printf ("%d",arr[r]);break;

}

}

}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论