📅  最后修改于: 2023-12-03 15:23:04.218000             🧑  作者: Mango
这是国际空间研究组织2017年计算机科学笔试的第77题。
给定一个具有N个整数的数组,您需要找到所有的子数组(连续元素的组合)以及每个子数组的和。
第一行包含一个整数N。
第二行包含N个用空格分隔的整数。
对于每个子数组,打印其元素和。
子数组应按其初始位置排序。
3
1 2 3
1
2
3
3
5
输入中的多行末尾可能会有多余的空格。请注意保持输出格式正确,小数点后应有两位数字。
本题要求对于给定的整数数组,计算其所有子数组的和。将每个子数组的和存储在列表中,最后将列表按原始位置排序并打印。
可以使用两个嵌套的循环遍历数组,内部循环迭代以计算当前子数组的和,并将其存储在列表中。最后,按原始位置排序,并打印列表中的所有元素。
def print_subarrays(arr, n):
output = []
for i in range(n):
sum = 0
for j in range(i, n):
sum += arr[j]
output.append(sum)
return output
# 输入数组
n = int(input())
arr = list(map(int, input().split()))
# 计算每个子数组的和
output = print_subarrays(arr, n)
# 按原始位置排序
output = sorted(output)
# 打印子数组和
for i in output:
print(i)
以上代码会输出和题目样例输出一致的结果。