最大降雨量(蓝桥杯题库)

文章描述了一个关于排列和中位数的数学问题,小明需要使用49张标有数字的法术符来求雨,法术能量由每周符咒数字的中位数决定。为了最大化最后的降雨量,即7周能量的中位数,文章通过分析得出最大中位数为34。代码实现是找到这个最大值并打印。

题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

由于沙之国长年干旱,法师小明准备施展自己的一个神秘法术来求雨。

这个法术需要用到他手中的 49 张法术符,上面分别写着 1 至 49 这 49 个数字。法术一共持续 77 周,每天小明都要使用一张法术符,法术符不能重复使用。

每周,小明施展法术产生的能量为这周 7 张法术符上数字的中位数。法术 施展完 7 周后,求雨将获得成功,降雨量为 7 周能量的中位数。

由于干旱太久,小明希望这次求雨的降雨量尽可能大,请大最大值是多少?

问题分析

将49个数分成7组,每一组找寻中位数,这样在每一组中就会有三个较大的数不是中位数,找到每一组数的中位数后,将这7个数再寻找中位数,会有其中的三个较大的数不是中位数,这样我们就确定比我们要找寻的数大的数至少要有3*3+3=15个,如果这15个数都是大数,将这15个数取出后剩余的那一个数就是最大的中位数了。即最大的那一个数为49-15=34;

代码实现:

因为经过思考直接出来答案了,代码十分简洁,将答案打印在屏幕上即可。

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  //我们要寻找的是1-49这49个数字分成7组每1组取其中位数
  //将这一组数再取中位数这样就能找到结果。
  //我们分析,在找每一组的中位数都要去除3个数,因为这三个数是大于中位数的
  //这样我们至少要取出3*4个数,然后再在所得的7个较大的数中取中位数,又要取出3个数,
  //这样我们剩下的最大的那个数就是我们要找的中位数了
  //每一次取出最大的数,因为最大的数不可能为中位数
  //49-3*4-3=34,49 48 47 .。。。。。等数都被取出剩下一个34
  printf("%d",34);
  return 0;
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值