当前位置: 首页 > news >正文

蓝桥杯官网填空题(海盗与金币)

题目描述

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

12名海盗在一个小岛上发现了大量的金币,后统计一共有将近5万枚。

登上小岛是在夜里,天气又不好。由于各种原因,有的海盗偷拿了很多,有的拿了很少。

后来为了“均贫富”,头目提出一个很奇怪的方案:

每名海盗都把自己拿到的金币放在桌上。然后开始一个游戏。

金币最多的海盗要拿出自己的金币来补偿其他人。

补偿的额度为正好使被补偿人的金币数目翻番(即变为原来的2倍)。

游戏要一直进行下去,直到无法完成。

(当金币数最多的不只一个人或最多金币的人持有金币数不够补偿他人的)

游戏就这样紧张地进行了,一直进行了12轮,恰好每人都“放血”一次,
更离奇的是,刚好在第12轮后,每个人的金币数居然都相等了!! 这难道是天意吗?

请你计算,游戏开始前,所有海盗的初始金币数目,从小到大排列,中间有一个空格分开。

答案形如:

8 15 29 58 110 ...

当然,这个不是正确答案。

运行限制

//最多金币海盗补偿的是所有金币比他少的海盗,不是只补偿一个海盗

逆推:例

最后一轮:2         2         2         2         2         2         2         2         2         2         2         2 

则上一轮:1         1         1         1         1         1         1         1         1         1         1        13

import java.util.Arrays;public class main {public static void main(String[] args) {int[] jinbi=new int[12];for(int i=12;i<50000;i+=12){//i为第12轮后的总金币数,为12的倍数Arrays.fill(jinbi,i/12);f(jinbi,i,11);}}public static void f(int[] jinbi,int sum,int max){//sum为金币总数,max为当前金币数最多的那个海盗的下标if(max<0){for(int i=11;i>=0;i--){System.out.printf(jinbi[i]+" ");}return;}int count=0;for(int i=0;i<12;i++){if(i==max){//如果i下标为金币数最多的那个海盗,则跳出一次循环,因为最多金币海盗不补偿自己continue;}if(jinbi[i]%2!=0){//如果第i个海盗的金币数不能被2整数,则返回函数,循环下一个总金币数return;}else {jinbi[i]=jinbi[i]/2;//逆推,上一轮的金币数为本轮金币数的一半count+=jinbi[i];//记录最多金币的海盗一共要补偿多少金币}}jinbi[max]=sum-count;//总金币数减去补偿金币的总数得到上一轮最多金币海盗的金币数f(jinbi,sum,max-1);}
}

    • 最大运行时间:1s
    • 最大运行内存: 128M

相关文章:

  • 【C++】类和对象
  • MyBatis 的XML实现方法(JAVA)
  • Android 基础技术——addView 流程
  • vue+elenemt分页+springboot
  • 幻读是什么,用什么隔离级别可以防止幻读?
  • 解决Windows下VSCode控制台乱码问题
  • 一文了解GeoTrust SSL证书
  • Win10/11中VMware Workstation设置网络桥接模式
  • 【Linux】基本指令收尾
  • Win10下在Qt项目中配置SQlite3环境
  • Conmi的正确答案——eclipse C/C++显示“未解析的包含:<xxx.h>”/“Unresolved inclusion: <xxx.h>”
  • Jupyter Notebook五分钟基础速通
  • 自建ES集群
  • k8s的包管理工具helm
  • 【大数据处理技术实践】期末考查题目:集群搭建、合并文件与数据统计可视化
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • 2019年如何成为全栈工程师?
  • css系列之关于字体的事
  • DataBase in Android
  • Elasticsearch 参考指南(升级前重新索引)
  • java取消线程实例
  • js正则,这点儿就够用了
  • laravel5.5 视图共享数据
  • leetcode386. Lexicographical Numbers
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • Redis学习笔记 - pipline(流水线、管道)
  • Spring Boot快速入门(一):Hello Spring Boot
  • vue中实现单选
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 分布式熔断降级平台aegis
  • 力扣(LeetCode)965
  • 聊聊flink的TableFactory
  • 你真的知道 == 和 equals 的区别吗?
  • 前端面试之闭包
  • 如何解决微信端直接跳WAP端
  • 我从编程教室毕业
  • 我的业余项目总结
  • 运行时添加log4j2的appender
  • 智能网联汽车信息安全
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • HanLP分词命名实体提取详解
  • 整理一些计算机基础知识!
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #git 撤消对文件的更改
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (LeetCode 49)Anagrams
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (层次遍历)104. 二叉树的最大深度
  • (定时器/计数器)中断系统(详解与使用)
  • (附源码)springboot家庭财务分析系统 毕业设计641323