7-69 求婚

国王的女儿达西娅要出嫁了,按照当地的风俗,在结婚那天公主从高台上抛下一朵鲜花,花儿落到谁身上,公主就嫁给谁。达西娅担心花儿落不到心上人克俊身上,就和克俊一起商议……。

达西娅找到父亲说:“我不愿意搭台抛花,那么多人挤在一起乱哄哄的。”国王说:“不搭台也行,你必须在结婚当天从求婚人群中选出新郎,但不许指名。”达西娅高兴地找到司仪做了安排。

结婚那天,司仪让求婚者站成一排,克俊数了一下求婚的人数,然后就站到队伍中去了。司仪让求婚者从 1 开始报数,报单数的人退场,留下的人再从 1 开始报数,报单数的人再退场,……,到最后只剩一个人时,众人惊奇地看到这个人正是克俊。

请编写程序,输入求婚的人数 n,输出克俊应该站的位置 p。

输入格式

n

输出格式

p

输入样例

105

输出样例

64

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

思路:

定义两个变量n,p=2,因为第一轮就要排序为单数的人要离去,因此克俊至少在2号位,为了能让克俊留到最后,因此每一轮克俊都需要在偶数位上并且还在2的次幂位置上,如果克俊占的位置大于总人数n ,那么除以2,就是克俊所在位置

代码:

#include<stdio.h>
int main()
{
    int n, p = 2;
    scanf("%d", &n);
    while (p <= n)
    {
        p *= 2;
    }
    printf("%d", p / 2);
    return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吾乃宇宙欠债王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值