问题描述
对于给出的长度为N的整数数组,对连续3个元素求平方和,输出平方和的最大值。
输入说明:第一行,数组中元素个数N(N<1000),第二行是这个数组中的N个元素,中间用空格隔开,每个元素小于100000.
输出说明:输出连续3个元素平方和的最大值。
输入样例: 8
11-12-33-42
输出样例: 34
解决方案
问题分析:
(1)怎样按照题目要求格式进行输入和输出。
(2)如何正确的使用for循环进行运算。
(3)怎样从众多平方和中选取最大值。
解决问题:
(1)使用map函数可以很好的解决在同一行输入多个变量和变量之间用空格隔开的问题。
N = int(input())
a = list(map(int, input().split(" ")))
lis1 = []
注意:map函数中输入的变量为同一类型变量。
(2)若N = 5,数组为:1 2 3 4 5;则可以得到三个目标数分别为14,29,50。分析可知一共循环N-2次时得到全部结果且不超过索引范围。
for i in range(N - 2):
b = a[i]**2 + a[i+1]**2 + a[i+2]**2
lis1.append(b)
(3)使用max函数可以简单的得到相关参数的最大值。
print(max(lis1))
(4)解决代码:
N = int(input())
a = list(map(int, input().split(" ")))
lis1 = []
for i in range(N - 2):
b = a[i]**2 + a[i+1]**2 + a[i+2]**2
lis1.append(b)
print(max(lis1))
运行实例:
结语
在本题中要注意题目要求的输入输出格式,在使用for循环以i为索引的时候要注意索引的范围,避免因索引超出范围导致程序报错。
实习编辑:欧洋
责编 :十七
能力越强,责任越大。
实事求是,严谨细致。
(where2go团队)
微信号:算法与编程之美
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。