获取门票定价
Getting pricing for tickets
我正在尝试制作一个简单的 java 程序,用于计算票价。
一张成人票是 10 美元,child 票价是 5 美元,而家庭票(2 名成人和 2 child人)是 26 美元。明显的节省
因此,当用户输入时,它需要计算家庭票的数量(如果适用),然后计算不适合家庭套餐的物品的定价。
即
- 成人人数:2
- 人数child人:4人
- 家庭票数量:1张
- child 张票数:2
- 总费用:36 美元
我无法弄清楚获得配对、比较并在需要时从成人和 children 那里取出额外物品背后的逻辑。这是到目前为止我得到的:
double adultPairs,childPairs;
if (numberAdults <= 1) {
adultPairs = 0;
}
else if (isEven(numberAdults)) {
adultPairs = numberAdults / 2;
adultTickets = 0;
}
else {
adultPairs = numberAdults / 2;
adultTickets = 1;
}
if (numberChildren <= 1) {
childPairs = 0;
}
else if (isEven(numberChildren)) {
childPairs = numberChildren / 2;
childTickets = 0;
}
else {
childPairs = numberChildren / 2;
childTickets = 1;
}
这个怎么样?
int familyTickets = Math.min(adults/2, childs/2);
int adultTickets = adults - familyTickets*2;
int childTickets = childs - familyTickets*2;
第一行比较成人和儿童的一半(四舍五入)和returns它的最小值。例如,如果您有 9 个成人和 25 个儿童,则需要 9/2 和 25/2,即 4 和 12,因此 returns 4。这就是您想要的家庭票数量。
在接下来的两行中,您只需取所有 adults/children 并减去 adults/children 家庭票,即家庭票数乘以二。
即使没有Math.min方法,也很容易:
int familyTickets = 0;
if (adults > childs){
familyTickets = childs/2;
} else {
familyTickets = adults/2;
}
int adultTickets = adults - familyTickets*2;
int childTickets = childs - familyTickets*2;
PS :另请注意,在 Java 中,如果将整数除以整数,则 returns 另一个整数 "rounded" 向下(技术上没有四舍五入,它只是切断任何小于 1) 的东西,这就是我们在这里需要的。这就是我不使用double的原因。
我正在尝试制作一个简单的 java 程序,用于计算票价。 一张成人票是 10 美元,child 票价是 5 美元,而家庭票(2 名成人和 2 child人)是 26 美元。明显的节省 因此,当用户输入时,它需要计算家庭票的数量(如果适用),然后计算不适合家庭套餐的物品的定价。
即
- 成人人数:2
- 人数child人:4人
- 家庭票数量:1张
- child 张票数:2
- 总费用:36 美元
我无法弄清楚获得配对、比较并在需要时从成人和 children 那里取出额外物品背后的逻辑。这是到目前为止我得到的:
double adultPairs,childPairs;
if (numberAdults <= 1) {
adultPairs = 0;
}
else if (isEven(numberAdults)) {
adultPairs = numberAdults / 2;
adultTickets = 0;
}
else {
adultPairs = numberAdults / 2;
adultTickets = 1;
}
if (numberChildren <= 1) {
childPairs = 0;
}
else if (isEven(numberChildren)) {
childPairs = numberChildren / 2;
childTickets = 0;
}
else {
childPairs = numberChildren / 2;
childTickets = 1;
}
这个怎么样?
int familyTickets = Math.min(adults/2, childs/2);
int adultTickets = adults - familyTickets*2;
int childTickets = childs - familyTickets*2;
第一行比较成人和儿童的一半(四舍五入)和returns它的最小值。例如,如果您有 9 个成人和 25 个儿童,则需要 9/2 和 25/2,即 4 和 12,因此 returns 4。这就是您想要的家庭票数量。
在接下来的两行中,您只需取所有 adults/children 并减去 adults/children 家庭票,即家庭票数乘以二。
即使没有Math.min方法,也很容易:
int familyTickets = 0;
if (adults > childs){
familyTickets = childs/2;
} else {
familyTickets = adults/2;
}
int adultTickets = adults - familyTickets*2;
int childTickets = childs - familyTickets*2;
PS :另请注意,在 Java 中,如果将整数除以整数,则 returns 另一个整数 "rounded" 向下(技术上没有四舍五入,它只是切断任何小于 1) 的东西,这就是我们在这里需要的。这就是我不使用double的原因。