#include<stdio.h>

int main(){
	// n表示几个人围一圈, flog数组进行标识(谁被剔除),s数组表示记录报数的人,index表示位置,count表示剔除的人数,stop表示步数 
	int n, flog[100] ={0}, s[100] = {0}, index = 0, count = 0, stop = 1;
	scanf("%d",&n);
	while(count < n){
		if(stop == 3){
			// 记录的是剔除的人位置 
			s[count] = index + 1;
			// 剔除一个人 则加1 
			count++; 
			// 即当前的人被剔除,该位置步数为零 
			stop = 0; 	
			// 把数组中的该位置的值改为1(默认是零) 
			flog[index] = 1;
		}
		// 位置加1,循环走,对位置进行取余操作
		index = (++index)%n;
		// 如果该人没有被剔除 则步数加一 
		if(flog[index] == 0){
			stop++;
		} 
	}
	// 打印查看 报数顺序 
//	for(int i = 0; i < n; i++){
//		printf("%d\n",s[i]);
//	} 
	printf("%d",s[count-1]); 
}


点赞(0)
 

0.0分

1 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论