ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ECNU 2143 端午节快乐

2021-02-01 20:01:04  阅读:186  来源: 互联网

标签:粽子 int 测试数据 ECNU num 2143 端午节 sc


ECNU 2143 端午节快乐

链接

https://acm.ecnu.edu.cn/problem/2143

题目

单点时限: 2.0 sec

内存限制: 256 MB

今天是端午节,ECNU 决定请大家吃粽子。恰好,今天超市为了迎合 ” 端午节 “,推出了 ” 端午大酬宾 “,即促销活动。严格的买三送一,买五送二。

ECNU 想用现有的钱,买最多的粽子,但是他自己又不会算,所以希望你能帮帮他。

输入格式
输入第一行为一个数 , 表示测试数据的组数。

每组测试数据有两个整数, 表示 ECNU 有 元钱,每个粽子价格为 元钱,超市推出了买 5 个送 2 个,和买 3 个送 1 个的活动。

输出格式
输出 ECNU 最多能买到的粽子数量。

样例
input
2
10 3
22 3
output
4
9
提示
有两组测试数据:
对于第一组测试数据:有10元钱,粽子3元一个,可以买3个,但是买3送1,所以最后有4个。
对于第二组测试数据:有22元钱,粽子3元一个,可以买7个,但是买5送2,所以最后有9个。

思路

可以说是贪心算法,优先想凑最高优惠,不行再用次级优惠,
这里直接用一个f函数,套一下就行了。

代码

  public static int f(int a, int b, int num) {
    if (a >= 5 * b) {
      return f(a - 5 * b, b, num + 7);
    } else if (a >= 3 * b) {
      return f(a - 3 * b, b, num + 4);
    } else {
      return num + a / b;
    }
  }

  public static void fun() {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    for (int i = 0; i < n; i++) {
      int a = sc.nextInt();
      int b = sc.nextInt();
      System.out.println(f(a, b, 0));
    }
  }

标签:粽子,int,测试数据,ECNU,num,2143,端午节,sc
来源: https://www.cnblogs.com/blogxjc/p/14358713.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有