题目描述
秋冬季阳关明媚的上午,老师带领同学们在做一个游戏,首先同学们排成一列,然后从 1 开始依次给同学们一个编号,如果有 5 位同学,他们的编号依次为1、 2、 3、 4、 5。 游戏的规则如下:
1) 从队头开始依次按一、二、一、二、 ……报数,凡是报到数为二的出来;
2)剩余的同学依次靠拢重新排成一列, 从队头开始依次按一、二、 一、二、 ……报数,凡是报到数为三的出来;
3) 重复第 1)、 2),直到剩余的人数不超过 3 为止。
输入说明
输入数据只有一行一个正整数 n,表示学生人数。
输出说明
一行由空格分隔的若干正整数。
输入样例
5
输出样例
1 3 5
也许正确吧
#include<stdio.h> //printf和scanf函数要用的
#include<math.h> //pow函数要用到的头文件
int main() {
int n, count = 0;
scanf("%d", &n); //记得‘&’符号啊!
float n1 = n; //类型转换,临界点要仔细考虑
while(n1 > 3) { //规律就是自己多试试
n1 /= 2; //试着试着也许就了解一些了
count ++; //草稿纸上演练一下
}
int zen = pow(2, count); //2的count次方
printf("%d ", 1);
printf("%d ",1 + zen);
if(1+2*zen <= n) //判断一下第三次能否满足条件
printf("%d", 1 + 2 * zen);
return 0;
}
记录完毕