Java 简单编码问题
在拉赫马尼亚州,邮寄一封30克以下的信件的费用是40西纳。在30克到50克之间,它是55西纳。在50克到100克之间,它是70西纳。超过100克,成本为70西纳,每增加50克或不足50克,额外增加25西纳。例如,101克将花费70+25=95西纳。149克也需要95个SINA,因为这两种包装都只使用前50克而不是100克。编写一个程序,提示用户进行邮件群发,然后给出邮寄具有该群发邮件的成本 这就是问题所在,我唯一不知道怎么做的是最后一部分,每增加50克,就增加25个SINA 有人能告诉我如何写这部分代码吗 顺便说一句,我使用netbeansJava 简单编码问题,java,Java,在拉赫马尼亚州,邮寄一封30克以下的信件的费用是40西纳。在30克到50克之间,它是55西纳。在50克到100克之间,它是70西纳。超过100克,成本为70西纳,每增加50克或不足50克,额外增加25西纳。例如,101克将花费70+25=95西纳。149克也需要95个SINA,因为这两种包装都只使用前50克而不是100克。编写一个程序,提示用户进行邮件群发,然后给出邮寄具有该群发邮件的成本 这就是问题所在,我唯一不知道怎么做的是最后一部分,每增加50克,就增加25个SINA 有人能告诉我如何写这
Scanner input = new Scanner(System.in);
double l;
l = input.nextInt();
x = l >= 100 / 50 * 25 + 70;
if (l <= 30) {
System.out.println("40 Sinas");
}
if (l > 30 && l < 50) {
System.out.println("55 Sinas");
}
if (l > 50 && l < 100) {
System.out.println("70 Sinas");
}
if (l >= 100) {
System.out.println("");
}
下面是代码的重要部分。如您所见,我需要关于最后一部分的帮助。解决方案:
Scanner input = new Scanner(System.in);
int l; // it should be int if read int
l = input.nextInt();
if (l <= 30) {
System.out.println("40 Sinas");
}
if (l > 30 && l < 50) {
System.out.println("55 Sinas");
}
if (l > 50 && l < 100) {
System.out.println("70 Sinas");
}
if (l >= 100) {
System.out.println(((((l - 100) / 50) + 1) * 25) + 70);
}
我只想指出,Krayo的解决方案有一个主要问题。如果重量值正好是100,使用该计算,实际上您将向客户额外收取25 SINA。这是由计算的+1部分引起的 如果重量为100,则超过100的50克间隔数为0重量-100=0。因此,客户不应该收取任何费用,因为问题的措辞表明超过100克。。。。但是,由于您要添加1,在执行额外成本计算之前,客户将不必要地额外获得25 SINA 相反,为了确保正确的金额为这一点,以及所有其他情况下,我会使用的方法,而不是。此方法将值四舍五入到最接近的整数。例如,5.2变为6.0,5.0保持为5.0 因此,您的计算结果如下所示:
int cost = (int) (Math.ceil((weight - 100) / 50.0f) * 25) + 70;
请注意,我们需要使用一个浮点值,以确保最终得到一个十进制值。由于Math.ceil返回一个double,我们只需将它转换回整数
这是一个示例程序来演示这一点:
public class CalculationTesting {
public static void main(String[] args){
int weight = 100;
int good_cost = (int) (Math.ceil((weight - 100) / 50.0f) * 25) + 70;
int bad_cost = ((((weight - 100) / 50) + 1) * 25) + 70;
System.out.println("Weight = " + weight + "g");
System.out.println("Good cost calculation = $" + good_cost);
System.out.println("Bad cost calculation = $" + bad_cost);
}
}
可以将“权重”值更改为“实验”
哪些产出:
重量=100克
良好的成本计算=70美元
错误的成本计算=95美元
其他人不会帮你做家庭作业,但如果你有困难,他们会帮助你。请阅读如何做。特别是,你应该发布你已经编写的代码,以及你遇到的问题的描述。不要在评论中…你可以编辑你的问题并在那里添加相关代码。这主要是一个数学问题。在最初的100克之后,每增加50克,您需要收费。你如何确定你有多少个50克的间隔?字母质量减去100除以50?我有一个关于+1的问题,为什么我们需要它?应该是:System.out.printlintl-100/50+1*25+70@戈登l=101;101-100=1; 1/50=0整数除法;0+1=1; 1*25=25; 25+70=95; 当然还有另一种计算方式