📌  相关文章
📜  国际空间研究组织 | ISRO CS 2017 |问题 77(1)

📅  最后修改于: 2023-12-03 15:23:04.218000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2017 |问题 77

这是国际空间研究组织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)

以上代码会输出和题目样例输出一致的结果。