我有一个项目,负责管理航班和乘客号码。我现在正忙于实现下面的函数,任何关于我如何去做的建议都是很棒的,我现在所拥有的是我认为不正确的,再次感谢。
问题:
在旅客()函数中,编写一个distributeAllSeatsToAllPassengers()函数,作为参数接收贵宾人数、常规乘客人数、航班数目、每次航班商务座位数和每次航班经济舱座位数。返回包含以下字段的对象:带商务座位的VIP乘客;带经济座位的VIP乘客;带商务座位的普通乘客;带经济座位的普通乘客。
必须按照以下顺序遵守分配规则:
首先,将贵宾乘客分配到商务座位上,直到VIP乘客或商务座位被消费为止。
然后,如果仍然有贵宾乘客,将他们分配到经济座位,直到贵宾乘客或经济座位被消费。
然后,如果仍然有商务座位,则将普通乘客分配到商务座位上,直到正式乘客或商务座位被消费为止。
然后,如果仍然有经济座位,就把普通乘客分配到经济座位上,直到普通乘客或经济座位被消费为止。你必须指派尽可能多的乘客。可能有乘客,也可能还有剩下的座位。
定义distributeAllSeatsToAllPassengers()函数后,一行代码将从模块导出函数:返回{distributeAllSeatsToAllPassengers};
当前解决方案:
import { supportsEsModules } from "mocha/lib/utils";
function Passengers() {
function distributeAllSeatsToAllPassengers(vipPassengers,
regularPassengers, nrOfFlights, businessSeatsPerFlight, economySeatsPerFlight)
{
let vipPassengersAssignedToBusinessSeats = 0;
let vipPassengersAssignedToEconomySeats = 0;
let regularPassengersAssignedToBusinessSeats = 0;
vipPassengersAssignedToBusinessSeats = vipPassengers / businessSeatsPerFlight;
vipPassengersNotSeated = vipPassengers % businessSeatsPerFlight;
if (vipPassengersNotSeated !== 0)
{
vipPassengersAssignedToEconomySeats = vipPassengersNotSeated / economySeatsPerFlight;
vipPassengersStillNotSeated = vipPassengersNotSeated % economySeatsPerFlight;
}
if (businessSeatsPerFlight !== 0)
{
regularPassengersAssignedToBusinessSeats = regularPassengers / businessSeatsPerFlight;
regularPassengersNotSeated = regularPassengers % businessSeatsPerFlight;
}
if (economySeatsPerFlight !== 0)
{
regualarPassengersAssignedToEconomySeats = regularPassengersNotSeated / economySeatsPerFlight;
regularPassengersStillNotSeated = regularPassengersNotSeated % economySeatsPerFlight;
}
var distributedPassengers = {
vipPassengersWithBusinessSeats: vipPassengersAssignedToBusinessSeats,
vipPassengersWithEconomySeats: vipPassengersAssignedToEconomySeats,
regularPassengersWithBusinessSeats: regularPassengersAssignedToBusinessSeats,
regularPassengersWithEconomySeats: regularPassengersAssignedToEconomySeats
};
return { distributedPassengers };
}
return { distributeAllSeatsToAllPassengers };
}
module.exports = Passengers();发布于 2022-06-29 11:12:38
这就是我想出来的,我不知道这是否符合你们老师的指导原则,但应该有效。也许可以作为一个起点。我补充了解释。
行vipPassengersAssignedToBusinessSeats = vipPassengers / businessSeatsPerFlight;的问题是,您可能会得到一个浮点数。图片有3个贵宾乘客和2个商务座位- 3/2返回一个花车。我会用循环来解决这个问题。
免责声明:没有测试,我以前也没有使用过%操作符,但我相信你可以适应。
function Passengers() {
function distributeAllSeatsToAllPassengers(num_flights, economy_seats, business_seats, passengers_vip, passengers_regular) {
// number of flights is completely redundant in this example
let passengers_vip_seated_business = 0,
passengers_vip_seated_economy = 0,
passengers_regular_seated_business = 0,
passengers_regular_seated_economy = 0,
passengers_vip_unseated = 0, // not necessary but nice to have
passengers_economy_unseated = 0; // see above
// use a for..of loop, assuming passengers_vip is an array
for (let passenger of passengers_vip) {
if (business_seats > 0) {
business_seats--; // reduce number of available business seats
passengers_vip_seated_business++; // increase number of seated passengers
} else if (economy_seats > 0) {
// if there are no business seats available, assign to economy_seats
economy_seats--;
passengers_vip_seated_economy++;
} else {
// no more seats, bummer!
passengers_vip_unseated++;
}
}
// do the same for regular passengers
for (let passenger of passengers_regular) {
if (business_seats > 0) {
business_seats--; // reduce number of available business seats
passengers_regular_seated_business++; // increase number of seated passengers
} else if (economy_seats > 0) {
// if there are no business seats available, assign to economy_seats
economy_seats--;
passengers_regular_seated_economy++;
} else {
// no more seats, bummer!
passengers_economy_unseated++;
}
}
return {
passengers_vip_seated_business: passengers_vip_seated_business,
passengers_vip_seated_economy: passengers_vip_seated_economy,
passengers_regular_seated_business: passengers_regular_seated_business,
passengers_regular_seated_economy: passengers_regular_seated_economy
}
}
// returns the function, idk why but okay, maybe for functional programming
return {distributeAllSeatsToAllPassengers}
}https://stackoverflow.com/questions/72798935
复制相似问题