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

JAVA -华为真题-分奖金

需求:

    公司老板做了一笔大生意,想要给每位员工分配一些奖金,想通过游戏的方式来决定每个人分多少钱。按照员工的工号顺序,每个人随机抽取一个数字。按照工号的顺序往后排列,遇到第一个数字比自己数字大的,那么,前面的员工就可以获得“距离 * 数字差值”的奖金。如果遇不到比自己数字大的,就给自己分配随机数数量的奖金。

例如,按照工号顺序的随机数字是:2,10,3。

第2个员工的数字10比第1个员工的数字2大,所以,第1个员工可以获得1 * (10-2)=8。

第2个员工后面没有比他数字更大的员工,所以,他获得他分配的随机数数量的奖金,就是10。

第3个员工是最后一个员工,后面也没有比他更大数字的员工,所以他得到的奖金是3。

请帮老板计算一下每位员工最终分到的奖金都是多少钱。
 

输入描述:
     第一行n表示员工数量(包含最后一个老板)
     第二是每位员工分配的随机数字 

输出描述:
     最终每位员工分到的奖金数量

输入:
        3         -->个数
        2 10 3  -->随机数
输出:
        8 10 3 --> 结果

编码:

public class TakePrize {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.print("请输入员工数量:");int len = sc.nextInt();System.out.print("随机生成员工号:");//调用方法1List<Integer> list = norepeat(len);System.out.println(list.toString());//调用方法2List<Integer> ll =show(list);System.out.println("员工分的奖金数:"+ll.toString());}/*** 开始遍历,并查找到第一个比自己大的数,那么就自己的奖金就是这个数减自己的数,如果没有,就自己的奖金就是本身随机数。* @param list* @return*/private static List<Integer> show(List<Integer> list) {int flag = 0;List<Integer> lists = new ArrayList<>();//循环比较for (int i = 0; i < list.size(); i++) {for (int j = i+1 ; j < list.size(); j++) {//判断前一个数是否大于后面的数if (list.get(i) < list.get(j)) {Integer money = (list.get(j) - list.get(i)) * (j - i);lists.add(money);flag = 1;break;}}//如果没有大于后面值if (flag == 0) {lists.add(list.get(i));}flag = 0; //重置}return lists;}/*** 随机数字不重复,员工数量(包含老板)范围1 ~ 10000** @param count* @return*/public static List<Integer> norepeat(int count) {//随机对象Random random = new Random();//set集合对象Set<Integer> set = new HashSet<>();//循环while (true) {//随机数范围1 ~ 10000
//            int number = random.nextInt(10000) + 1;int number = random.nextInt(10) + 1;set.add(number);//判断是否满足员工数量if (set.size() >= count) {break;}}//返回集合对象return new ArrayList<>(set);}
}

效果: 

 

 

http://www.lryc.cn/news/165213.html

相关文章:

  • 第二章:25+ Python 数据操作教程(第十八节如何使用 Matplotlib 库在 python 中执行绘图和数据可视化)持续更新中
  • XShell7 + Xftp7 + IDEA 打包MapReduce程序到集群运行
  • 微软D365 入门文章汇总以及各项认证介绍(持续跟新.....)
  • vscode搭建Django自带后台管理系统
  • Verilog零基础入门(边看边练与测试仿真)-时序逻辑-笔记(4-6讲)
  • 2023-09-12力扣每日一题
  • leetcode面试题:交换和(三种方法实现)
  • 前端可视化界面开发技术:实战与优化
  • Python实现机器学习(下)— 数据预处理、模型训练和模型评估
  • 树结构处理,list和tree互转
  • 可视化大屏设计模板 | 主题皮肤(报表UI设计)
  • Spring Boot + Vue的网上商城之客服系统实现
  • RabbitMQ: return机制
  • 记录一些奇怪的报错
  • Ubuntu 安装redis数据库,并设置开机自启动
  • 基于开源模型搭建实时人脸识别系统(五):人脸跟踪
  • VUE | 配置环境变量
  • Dynamic-TP入门初探
  • Git的基本操作:远程操作
  • 【IOC,AOP】spring的基础概念
  • 安全实战 | 怎么用零信任防范弱密码?
  • 1-4 AUTOSAR方法论
  • MFC C++ 数据结构及相互转化 CString char * char[] byte PCSTR DWORE unsigned
  • 多版本CUDA安装切换
  • sqlserver union和union all 的区别
  • Matlab 如何计算正弦信号的幅值和初始相角
  • 华为hcie认证培训报班培训好?还是自学好
  • ASP.NET+sqlserver通用电子病历管理系统
  • wireshark通常无法抓取交换机所有端口报文
  • 猫头虎的技术笔记:Spring Boot启动报错解决方案