已知n个整数。 每3个数算一个周期。 不足一个周期补0. 在周期的第一个位置的数的权值和等于a1+a[1+3]+… … 求三个数的最大权值。 如果最大权值为第一个数,输出’J’; 最大权值为第二个数,...

已知有n个整数,并且要将这些数分成若干个三个数一组的周期,如果不足一个周期,就在最后补上0。对于每个周期中第一个数的权值和等于a1 a[1 3] … …,求这三个数中权值最大的数的权值。如果最大权值在第一个数,输出’J’;如果最大权值在第二个数,输出’H’;如果最大权值在第三个数,输出’B’。

可以使用如下的代码来解决这个问题:

int n =// 输入n
int a[n]; // 输入a[i]

int max_val = 0; // 记录最大权值
char ans = ' '; // 记录答案

for (int i = 0; i < n; i += 3) {
    // 对于每一个周期,求出最大权值
    int val = max(a[i], max(a[i+1], a[i+2]));

    // 如果当前周期最大权值更大,更新答案
    if (val > max_val) {
        max_val = val;

        // 判断最大权值在哪个数
        if (val == a[i]) ans = 'J';
        else if (val == a[i+1]) ans = 'H';
        else ans = 'B';
    }
}

cout << ans << endl; // 输出答案

在上述代码中,我们首先使用一个for循环来遍历每一个周期。对于每一个周期,我们使用C++中的max函数来求出三个数中的最大值,然后将这个最大值与当前最大权值进

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值