【一维数组】排队报数
问题补充:
题目描述把N个同学排成一排, 由前向后按1,2,1,2......报数, 报单数的走出队伍, 报双数的向前靠拢重新组成一排, 然后再1,2,1,2......报数, 报单数的走出队伍,问剩下最后一个人时,这个人原来在哪个位置.(N由键盘输入)
输入一行一个正整数,表示有多少个同学输出一行一个整数,表示最后退出的同学原来在哪个位置
样例输入6样例输出4
数据范围限制
最佳答案
这个题目完全可不用数组,分析下,最终的位置m肯定是小于总人数n的2的m次方,所以以下程序应该能得到你想要的
#include <stdio.h>
int main()
{
int n,m=2;
scanf("%d",&n);
while(n>=m)
m*=2;
printf("%d\n",m/2);
return 0;
}
输入
6
输出
4
输入
10
输出
8
输入
100
输出
64
追问:
对不起。能不能用Pascal做?
最佳答案由网友 whoami1978 提供
其他回答
暂无其它回答!