Love丶FFC's Blog

CCF-CSP_20170901:打酱油

2019-10-12 13:33:14
阅读:498   •   评论:2
标签:,

问题描述

小明带着N元钱去买酱油。酱油10块钱一瓶,商家进行促销,每买3瓶送1瓶,或者每买5瓶送2瓶。请问小明最多可以得到多少瓶酱油。

输入格式

输入的第一行包含一个整数N,表示小明可用于买酱油的钱数。N是10的整数倍,N不超过300。

输出格式

输出一个整数,表示小明最多可以得到多少瓶酱油。

样例输入

40

样例输出

5

样例说明

把40元分成30元和10元,分别买3瓶和1瓶,其中3瓶送1瓶,共得到5瓶。

样例输入

80

样例输出

11

样例说明

把80元分成30元和50元,分别买3瓶和5瓶,其中3瓶送1瓶,5瓶送2瓶,共得到11瓶。

编程语言:Java

解题思想:

1.买5瓶送2瓶的比例为50元:7瓶,买3瓶送一瓶的比例为30元:4瓶,则使用50元购买更为划算。

2.因此只需对三种情况进行判断。

①金额大于等于50元时,对50进行整除。

②金额大于等于30元,小于等于40元时,购买一次30元的。

③金额小于30元时,直接购买。

时间复杂度:O(logN)

IDE代码如下:

  1. package CCF_CSP;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class _20170901_100point {
  6.  
  7. public static void main(String[] args) {
  8. Scanner scanner = new Scanner(System.in);
  9. int N = scanner.nextInt(); //小明的钱数
  10.  
  11. int count = 0; //酱油瓶数
  12. while(N != 0)
  13. {
  14. if(N <= 20) //钱数少于20,无法参与促销时
  15. {
  16. count += N/10;
  17. N = 0;
  18. }
  19. else if(N >= 30 && N <= 40) //钱数[30,40]时
  20. {
  21. count += N/30*(4);
  22. N = N%30;
  23. }
  24. else //钱数大于40时,因为N是10的整数倍。也可以理解为钱数大于等于50时
  25. {
  26. count += N/50*(7);
  27. N = N%50;
  28. }
  29. }
  30. System.out.println(count);
  31. }
  32.  
  33. }
  34.  

评论板

共有 2 条评论

  1. FoorryNox

    lemon and olive oil viagra 5 mg kg furosemide twice daily by subcutaneous injection for 7 days

  2. Preliaf

    Hypersensitivity Reactions see WARNINGS AND PRECAUTIONS Sulfite Allergic Reactions see WARNINGS AND PRECAUTIONS buy viagra uk

--------查看该分类下最新文章--------
^
新版博客正在完善中!域名:http://www.loveffc:8080,点击跳转,完全移植后将去除端口号。

Copyright © 2018 - 2021 FFC的小站 - 滇 ICP 备 18010780 号 - 1

- Powered by WordPress & AliYun · Theme by FFC -

- Environment by Windows & XAMPP · Designed by WebStorm & VSCode -

已运行:

访问量:506593