南邮 OJ 1506 选队长

选队长

时间限制(普通/Java) :  1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 273            测试通过 : 80 

比赛描述

南邮ACM集训队要选一名队长,按如下规则进行:所有的同学围成一圈,分别标号为1,2,3......n。从标号为1的同学开始依次报数1,2,1,2,......,所有报数为2的同学出列,剩下的同学继续依次报数,直到最后剩下一名同学为止,这名同学成为南邮ACM集训队的队长。如果告诉你队长的标号,请问南邮ACM集训队至少有多少名同学。



输入

多组输入数据。每组数据仅一个数k,表示队长的标号。(1<=k<=10^9)

输出

每行输出一个整数,南邮ACM集训队最少的人数。

样例输入

1
3

样例输出

1
3

提示

 

题目来源

ym



#include<stdio.h>
int main(){
	__int64 k,i;
	while(scanf("%I64d",&k)==1){
		i = 1;
		while(i<=k){
			i<<=1;
		}
		printf("%I64d\n",(i>>1)+((k+1)>>1)-1);
	}
}






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值