买铅笔《算法》java实现

        老师为公平起见,只买一种类型。开始构思时,掉坑了以为组合不同类型的花费最少 。 

import java.util.ArrayList;
import java.util.Scanner;
/**
 * 问题:
 * P老师需要去商店买n支铅笔作为小朋友们参加编程比赛的礼物。她发现商店一共有 3 种包装的铅笔,
 * 不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P老师决定只买同一种包装的铅笔。
 *  商店不允许将铅笔的包装拆开,因此P老师可能需要购买超过 n 支铅笔才够给小朋 友们发礼物。
 *   现在P老师想知道,在商店每种包装的数量都足够的情况下,要买够至少 n 支铅笔最少需要花费多少钱。
 *   
 *  
 
 * 输入描述
 *   第一行包含一个正整数 n ,表示需要的铅笔数量。 接下来三行,
 *   每行用 2 个正整数描述一种包装的铅笔:
 *   其中第 1 个整数表示这种 包装内铅笔的数量,第 2 个整数表示这种包装的价格。 
 *   保证所有的 7 个数都是不超过 10000 的正整数。
 *   
 *   输出描述:
 *   	1 个整数,表示P老师最少需要花费的钱。
 *  输入数据:
*   	 57
		 2 2
		 50 30
		 30 27
	输出
		54
 *   
 * @author Administrator
 *
 */
public class 买铅笔 {
 public static void main(String[] args) {
     Scanner scan = new Scanner(System.in);
     String str_0 = scan.nextLine().trim();
		int n = Integer.parseInt(str_0);
     
     ArrayList<ArrayList<Integer>> arr = new ArrayList<>();
     for(int i = 0; i < 3; i++){
         String str_1 = scan.nextLine();
         String[] line_list_1 = str_1.trim().split(" ");        
         ArrayList<Integer> temp_1 = new ArrayList<>();
         for(int j = 0; j < line_list_1.length; j++){
             temp_1.add(Integer.parseInt(line_list_1[j]));
         }
         arr.add(temp_1);
     }
 

     scan.close();

     int result = solution(n, arr);

     System.out.println(result);

 }

 public static int solution(int n, ArrayList<ArrayList<Integer>> arr){
     int result = 0;

     // TODO: 请在此编写代码
     for (int i = 0; i < arr.size(); i++) {
    	 int pnum=arr.get(i).get(0);
    	 int price=arr.get(i).get(1);
		 
    	 int box=0;
    	 if(n%pnum>0){
    		 box=n/pnum+1;
    	 }else{
    		 box=n/pnum;
    	 }
    	 
    	 int temp =box*price; 
    	 
    	 if( temp < result || result==0){
    		 result = temp; 
    	 }
	}
     return result;
 }

 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东哥带你

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值