已知n个整数。 每3个数算一个周期。 不足一个周期补0. 在周期的第一个位置的数的权值和等于a1+a[1+3]+… … 求三个数的最大权值。 如果最大权值为第一个数,输出’J’; 最大权值为第二个数,输出’H’; 最大权值为第三个数,输出’B’。
时间: 2023-05-23 20:05:57 浏览: 82
A:可以通过以下代码实现:
```python
import sys
# 读入输入
n = int(input().strip())
nums = list(map(int, sys.stdin.readline().strip().split()))
# 把不足一个周期的数补0
nums += [0] * (3 - n % 3) if n % 3 != 0 else []
# 计算每个周期的权值和 a[i]
a = [0] * (n // 3)
for i in range(0, n, 3):
a[i // 3] = nums[i] + nums[i + 1] * 2 + nums[i + 2] * 3
# 找出三个数中最大权值的索引
max_idx = a.index(max(a))
# 输出结果
if max_idx == 0:
print('J')
elif max_idx == 1:
print('H')
else:
print('B')
```
首先读入输入,然后把不足一个周期的数补0,使得所有数恰好组成整数个完整周期。接着计算每个周期的权值和 a[i],在这里使用了一个列表推导式。最后,找出三个数中最大权值的索引,输出相应的结果即可。
相关问题
已知n个整数。 每3个数算一个周期。 不足一个周期补0. 在周期的第一个位置的数的权值和等于a1+a[1+3]+… … 求三个数的最大权值。 如果最大权值为第一个数,输出’j’; 最大权值为第二个数,输出’h’; 最大权值为第三个数,输出’b’。
这是一道数学题,已知n个整数。每3个数算一个周期。不足一个周期补0。在周期的第一个位置的数的权值和等于a1+a[1+3]+…求三个数的最大权值和。如果最大权值为第一个数,输出'j';如果最大权值为第二个数,输出'h';如果最大权值为第三个数,输出'b'。
c语言输入n个数算平均数
很高兴回答您的问题!要计算 n 个数的平均值,您可以使用 C 语言编写以下代码:
```c
#include <stdio.h>
int main() {
int n, i;
float sum = 0, num, average;
printf("请输入要计算平均值的数的个数:");
scanf("%d", &n);
printf("请输入 %d 个数:\n", n);
for (i = 0; i < n; i++) {
scanf("%f", &num);
sum += num;
}
average = sum / n;
printf("平均值为:%.2f\n", average);
return 0;
}
```
这段代码首先要求用户输入要计算平均值的数的个数 n,然后依次输入 n 个数。代码使用循环将输入的数累加到变量 sum 中,最后计算平均值并打印出来。
请注意,这里假设用户输入的都是有效的数字,并且代码中使用了浮点数来存储平均值,以保留小数部分。
阅读全文