wap是什么意思,深圳市seo网络推广平台,seo服务公司,青岛的网站建设题目
给定 n 个整数 a1, a2#xff0c;…,an#xff0c;求它们两两相乘再相加的和即: Sa1a2a1a3a1ana2a3 a#xff08;n-2#xff09;*an...a(n-1)*an 输入格式 输入的第一行包含一个整数 n。 第二行包含 几 个整数 a1,a2,,an。 输出格式 输出一个整数 S#xff0c;表示所…题目
给定 n 个整数 a1, a2…·,an求它们两两相乘再相加的和即: Sa1·a2a1·a3··a1·ana2·a3··· an-2*an...a(n-1)*an 输入格式 输入的第一行包含一个整数 n。 第二行包含 几 个整数 a1,a2,···,an。 输出格式 输出一个整数 S表示所求的和。请使用合适的数据类型进行运算。
分析
我们首先可以进行公式化简化简后发现是一个明显的前缀和问题。
代码
这里给出两个代码第一个是暴力方法比较简单但会超时。
nint(input())
num[]
sums0
for i in input().split():num.append(int(i))
for i in range(len(num)):for j in range(i1,len(num)):sumsnum[i]*num[j]
print(sums)
第二个代码使用前缀和方法。
nint(input())
num[]
sums0
for i in input().split():num.append(int(i))
a[num[0]][0]*(n-1)
for i in range(1,n):a[i]num[i]a[i-1]
for i in range(n):sumsnum[i]*(a[n-1]-a[i])
print(sums)