Java、比较成本

        假设你要通过两种不同的包裹运输大米。你可能会编写一个程序来比较成本,该程序提示用户输入每个包裹的重量和价格,然后显示具有更优惠的包裹。


package pack2;

import java.util.Scanner;

public class CostingComparation {

	public static void main(String[] args) {
		try(Scanner input = new Scanner(System.in);) {
			System.out.print("Enter weight and price for package 1: ");
			double w1 = input.nextDouble(), p1 = input.nextDouble();
			
			System.out.print("Enter weight and price for package 2: ");
			double w2 = input.nextDouble(), p2 = input.nextDouble();
			
			System.out.println(compare(w1, p1, w2, p2));
		}
	}

	//比较成本
	public static String compare(double w1, double p1, double w2, double p2) {
		if(w1 < 0 || w2 < 0 || p1 < 0 || p2 < 0)	//出现负数时抛出异常
			throw new IllegalArgumentException("Error input: negative data");
		
		double unitPrice1 = p1 / w1;	//单价 = 价格 / 重量
		double unitPrice2 = p2 / w2;
		
		if(Math.abs(unitPrice1 - unitPrice2) < 0.00001)	//价格相等时
			return "Two packages have the same price";
		else
			return "Package "+(unitPrice1 > unitPrice2 ? 2 : 1)+" has a better price";
	}
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值