老董~ 2016-09-15 10:17 采纳率: 0%
浏览 1000

关于酒店分房的C++实现问题

问题描述:
有个表格,每一行是一张订单,关键的2个信息是 人数和房间数,比如:
人数 7 房间数 3。 现在需要将每个人数和房间数都>1的单子进行分拆,
比如人数 7 房间数 3 分拆为 3个单子:

分别是

订单1:人数 2 房间数 1;
订单2:人数 2 房间数 1;
订单3:人数 3 房间数 1;

又比如比如人数 7 房间数 4 分拆为4个单子:
分别是

订单1:人数 2 房间数 1;
订单2:人数 2 房间数 1;
订单3:人数 2 房间数 1;
订单4:人数 1 房间数 1;

因此问题是:给定人数和房间数,算法如何设计能得到各房间的人数?ps:一般一间房间 人数在[1,3]之间。
类似的,还有另一类订单 是送餐券
可能的一种情况是 人数4,餐券数7 ---和酒店分房正好相反,应该分成4张订单。

目前我自己设计的算法是先判断
1 判断 人数>=服务数?
1.1 若是,子订单数=服务数,
2 再判断 人数%服务数==0?
2.1 若是,各子订单人数=人数/服务数
2.2 若不是, 判断 服务数x2-人数==1或-1;以此判断各子订单人数是 2+1型还是2+3型;
1.2 否则子订单数=人数
重复类似2.1 2.2的判断

但是我总觉得我设计的有点复杂,应该有更简单的解决办法吧。。。

  • 写回答

2条回答 默认 最新

  • himiky 2016-09-15 12:56
    关注

    创建对象函数,可以用数组

    评论

报告相同问题?

悬赏问题

  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?