You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript计算所需餐桌数及剩余无座宾客数问题求助

解决calculateTables函数的实现问题

现有代码的问题

你当前的代码存在几个关键错误:

  • 错误将guests(数字参数)当成数组处理,使用了guests.length和guests[i],这部分循环完全没有意义,因为guests不是数组。
  • 只处理了宾客数能被座位数整除的情况,没有覆盖有余数的场景,也没有正确计算餐桌数和剩余宾客数。

正确实现思路

要解决这个问题,只需要两个核心运算:

  1. 剩余宾客数:用取余运算符%直接计算,得到无法被单桌座位数容纳的宾客数量。
  2. 餐桌数量:对总宾客数除以单桌座位数的结果取整数部分,得到需要的完整餐桌数。

修正后的代码

function calculateTables(guests, seats) {
    const tables = Math.floor(guests / seats);
    const remainingGuests = guests % seats;
    return { tables, remainingGuests };
}

代码解释

  • Math.floor(guests / seats):对除法结果向下取整,得到坐满宾客的餐桌数量,比如14除以6得到2.333,取整后是2张满座餐桌。
  • guests % seats:取余运算直接得到没座位的剩余宾客数,14对6取余得到2,正好对应示例中的结果。
  • 返回对象时,因为变量名和属性名一致,可以用简写语法{ tables, remainingGuests },等价于{ tables: tables, remainingGuests: remainingGuests }。

验证示例

  • calculateTables(4, 2) → { tables: 2, remainingGuests: 0 }(符合预期)
  • calculateTables(14, 6) → { tables: 2, remainingGuests: 2 }(符合预期)
  • calculateTables(26, 5) → { tables: 5, remainingGuests: 1 }(符合预期)

内容的提问来源于stack exchange,提问作者Mahmud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 03:50:15