1. 买可乐(50%)

我没不清楚另50%为什么通不过,求指点

//游游今年就要毕业了,和同学们在携程上定制了日本毕业旅行。愉快的一天行程结束后大家回到了酒店房间,这时候同学们都很口渴,石头剪刀布选出游游去楼下的自动贩卖机给大家买可乐。
//
//贩卖机只支持硬币支付,且收退都只支持10 ,50,100 三种面额。一次购买行为只能出一瓶可乐,且每次购买后总是找零最小枚数的硬币。(例如投入100圆,可乐30圆,则找零50圆一枚,10圆两枚)
//
//游游需要购买的可乐数量是 m,其中手头拥有的 10,50,100 面额硬币的枚数分别是 a,b,c,可乐的价格是x(x是10的倍数)。
//
//如果游游优先使用大面额购买且钱是够的情况下,请计算出需要投入硬币次数?
//
//
//
//输入描述
//依次输入,
//
//需要可乐的数量为 m
//
//10元的张数为 a
//
//50元的张数为 b
//
//100元的张树为 c
//
//1瓶可乐的价格为 x
//
//输出描述
//输出当前金额下需要投入硬币的次数
//
//例如需要购买2瓶可乐,每瓶可乐250圆,手里有100圆3枚,50圆4枚,10圆1枚。
//
//购买第1瓶投递100圆3枚,找50圆
//
//购买第2瓶投递50圆5枚
//
//所以是总共需要操作8次金额投递操作
//
//
//样例输入
//2
//1
//4
//3
//250
//样例输出
//8
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;public class Main {/*请完成下面这个函数,实现题目要求的功能
当然,你也可以不按照下面这个模板来作答,完全按照自己的想法来 ^-^
******************************开始写代码******************************/static int buyCoke(int m, int a, int b, int c, int x) {int ans = 0;int[] haves = {c, b, a};int[] faces = {100, 50, 10};for(int i = 0; i < m; i++){int count = 0;int money = x;for(int j = 0; j < 3; j++){int temp = money / faces[j] + (money % faces[j] == 0 ? 0 : 1);if(temp <= haves[j]){haves[j] -= temp;count += temp;// 找钱int back = money % faces[j];int k = j;while(k + 1 <= 2){haves[k + 1] += back / faces[k + 1];back = back % faces[k + 1];k++;}break;}else{count += haves[j];money -= haves[j] * faces[j];haves[j] = 0;}}ans += count;}return ans;}
/******************************结束写代码******************************/public static void main(String[] args){Scanner in = new Scanner(System.in);int res;int _m;_m = Integer.parseInt(in.nextLine().trim());int _a;_a = Integer.parseInt(in.nextLine().trim());int _b;_b = Integer.parseInt(in.nextLine().trim());int _c;_c = Integer.parseInt(in.nextLine().trim());int _x;_x = Integer.parseInt(in.nextLine().trim());res = buyCoke(_m, _a, _b, _c, _x);System.out.println(String.valueOf(res));    }
}

2. 派司机

package top.actim.test09;import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;/***   司机派遣到AB区域会得到不同的报酬*  要求派遣到AB区域的司机人数相等(司机为2N个)* 使报酬最多** 每行一个司机,AB的报酬*    *   输入:* 10 30*  100 200*    150 50* 60 20*  #** 输出:* 440*/
public class Main {static class Driver {static int nA; // A更大的结点数static int nB; // B更大的结点数static int ans; // 最终结果,由balance得出int A;int B;int max;int down; // |A - B|static ArrayList<Driver> data = new ArrayList<Driver>();Driver(int a, int b) {A = a;B = b;if (A > B) {down = A - B;max = A;nA++;} else {down = B - A;max = B;nB++;}ans += max; // 不限制选择AB数量时的最优值data.add(this);}// 平衡nA和nB并得出结果static void balance() {// 排序,其实用堆更好吧data.sort(new Comparator<Driver>() {@Overridepublic int compare(Driver o1, Driver o2) {return o1.down - o2.down;}});// 需要进行改派的次数int div = nA - nB;div /= 2;for (int i = 0; i < data.size(); i++) {// 如果nA比nB多if (div > 0) {// 如果当前结点是A比较大if (data.get(i).max == data.get(i).A) {// 改派ans -= data.get(i).down;nA--;nB++;div++;}} else if (div < 0) {if (data.get(i).max == data.get(i).B) {ans -= data.get(i).down;nA++;nB--;div--;}} else {break;}}}}public static void main(String[] args) {Scanner cin = new Scanner(System.in);while (cin.hasNextInt()) {int incomeOfA = cin.nextInt();int incomeOfB = cin.nextInt();// Start coding -- Input Datanew Driver(incomeOfA, incomeOfB);}// Start codingDriver.balance();System.out.println(Driver.ans);}}//10 30 100 200 150 50 60 20#
//
//440

【2010.10.13 10:00 携程校招笔试】买可乐(50%)、派司机相关推荐

  1. AMD处理器电脑使用VMware Workstation Pro 16.2.0安装macOS 10.13/10.15.3

    电脑配置:Windows 10,华硕天选,R9-4900H,RTX2060. 准备工作 1.进入BIOS将SVM(Secure Virtual Machine mode)模式开启,即开启虚拟化. 2. ...

  2. 携程校招Java岗位面经(二面)

    这是携程的Java二面,主要问的还是八股.

  3. 【2023秋招大厂真题】携程校招-2022.9.28-k-好数组

    2023大厂真题提交网址(含题解): www.CodeFun2000.com(http://101.43.147.120/) 最近我们一直在将收集到的机试真题制作数据并搬运到自己的OJ上,供大家免费练 ...

  4. 携程——前端笔试(2022.4.14)

    题目 1.画一个大小为n的U 2.数组染色 3.01串变间隔串 4.字符串子序列是9的倍数 1.画一个大小为n的U 游游想让你画一个大小为n的"U",你能帮帮她,具体的画法见样例说 ...

  5. 笔试真题解析 | 4.15携程实习笔试三道编程题

    恭喜发现宝藏!搜索公众号[TechGuide]回复公司名,解锁更多新鲜好文和互联网大厂的笔经面经. 作者@TechGuide[全网同名] 订阅专栏[进阶版]2023最新大厂笔试真题 & 题解, ...

  6. 2021携程前端笔试

    一共就两道编程题,一题50分. 这题就非常简单了,我第一时间就想到了这个复杂点的方法,判断两个数组那里可以用更少的代码去实现 /*请完成下面这个函数,实现题目要求的功能 当然,你也可以不按照下面这个模 ...

  7. 携程发布2020年财报:四季度营业利润率10% 疫情以来连续两季度盈利

    北京时间2021年3月4日, 携程集团(纳斯达克股票代码:TCOM)公布了截至2020年12月31日第四季度及全年的财务业绩. 在全球旅游业饱受疫情冲击的背景下,携程在2020年全年的业绩表现&quo ...

  8. VMware Workstation 15 pro 安装macOS 10.13,macOS 10.14教程(仅供个人兴趣学习使用)

    VMware Workstation 15 pro 安装macOS 10.13/10.14教程 (P.S. 本文仅提供安装方法,不再提供破解/激活) 2020.06.21更: unlocker 3.0 ...

  9. 技嘉B360M AORUS PRO 小雕+8400 黑苹果安装 EFI 10.13.6-10.15.4

    B360M-AORUS-PRO-8400-EFI 提示 10.15.4目测稳定性还不错,白苹果有发热问题,台式机散热好应该吃得消,Xcode11.4也需要10.15.2及以上版本,新的EFI将在一两周 ...

  10. 去哪儿对垒携程 在线旅游静悄悄的革命

    出处:21世纪经济报道 时间:2011-05-11 10:38[ 字体: 大 中 小 ] [打印此页] [关闭] 颠覆与被颠覆的游戏,正于在线旅游市场悄然演绎.  5月10日,携程收报48.3美元,市 ...

最新文章

  1. 服务端JavaScript之Rhino
  2. 深度学习中 batchnorm 层是咋回事?
  3. 网易云信自研大规模传输网核心系统架构剖析
  4. linux 命令 ppt,Linux基本命令()讲解.ppt
  5. 工程师已经被虐到不行不行的了
  6. NIO和Netty经典面试题
  7. 剑指offer 面试题17. 打印从1到最大的n位数
  8. Visual Studio-查看汇编代码
  9. 地理空间数据Geometry在MySQL中使用(二)
  10. 【openv450-samples】像素点聚类EM 图像聚类目标检测
  11. MacBook使用与应用推荐
  12. /dev/sr0 3.7G 3.7G 0 100% /media/CentOS_6.8_Final
  13. 基于51单片机的心形流水灯
  14. kubernetes之ReplicaSet
  15. 用python写个程序送给女朋友_用 Python 哄女朋友开心!你觉得可行嘛?
  16. 五年后计算机专业还会吃香吗,未来5年的紧缺职业 五年后最吃香的专业有哪些?...
  17. DBA的工作职责和每日工作
  18. 食亨CEO王泰舟对话新华社:餐饮数字化经营时代已经到来
  19. 基于 C语言 surf 特征点的低重叠度图像拼接【100010118】
  20. JavaEE - JVM Java虚拟机

热门文章

  1. 禁用U盘等移动设备的自动播放
  2. 公共IPV6 dns大全
  3. 奥运五环(一键复制)
  4. c语言代码查重,C语言过滤重复文本数据+代码【原创】
  5. uva_10066 The Twin Towers
  6. 中国省,市,区 json数据
  7. 第十一周博客作业西北师范大学|李晓婷
  8. 六级考研单词之路-十五
  9. Rosalind第11题:Mortal Fibonacci Rabbits
  10. 计算机与信息技术基础读书笔记,信息技术读书笔记3篇