猿辅导笔试第一题

笔试题:
公司组织去外地旅游,现在安排分车。
输入总共员工个数membercount和大巴车的最大载容量carcount(不包括司机),以及员工到达集合点的先后顺序。输出上车顺序。
例子:
输入:8 3
2 1 5 3 4 6 8 7
输出:
8 7 3 4 6 2 1 5
解释:车容量为3,即每3人一组,被安排进入一辆车。到达的顺序是第一组(2 1 5)、第二组(3 4 6)、第三组(8 7),输出即为第三组、第二组、第一组。

2 1 5 / 3 4 6 / 8 7
8 7 / 3 4 6 / 2 1 5

#include <iostream>
using namespace std;
int main() {
    int membercount, carcount;
    cin >> membercount;
    cin >> carcount;

    int *member = new int[membercount];
    for (int i = 0; i < membercount; i++) {
        cin>>member[i];
    }
    int groupnum= membercount/ carcount;
    if (membercount %carcount != 0)
        groupnum++;
    int *order = new int[membercount];
    int k = 0;
    for (; k <membercount- (groupnum - 1)*carcount; k++)//最后一组个数和其他组不一样,单独处理
        order[k] = member[(groupnum - 1)*carcount + k];
    for (int i = groupnum - 2; i >=0; i--) //可以把member看成二维数组,索引的x坐标变成由下而上。
        for (int j = 0; j < carcount; j++) 
            order[k++] = member[i*carcount + j];

    for (int i = 0; i < membercount; i++) {
        cout<< order[i]<<" ";
    }
    cout << endl;
    delete[] member;
    delete[] order;
    system("pause");
    return 0;
}

1

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值