欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python入门习题(17)——CCF CSP认证考试真题:最大波动

程序员文章站 2022-04-02 09:39:19
...

问题描述

试题编号: 201609-1
试题名称: 最大波动
时间限制: 1.0s
内存限制: 256.0MB

问题描述
  小明正在利用股票的波动程度来研究股票。小明拿到了一只股票每天收盘时的价格,他想知道,这只股票连续几天的最大波动值是多少,即在这几天中某天收盘价格与前一天收盘价格之差的绝对值最大是多少。
输入格式
  输入的第一行包含了一个整数n,表示小明拿到的收盘价格的连续天数。
  第二行包含n个正整数,依次表示每天的收盘价格。
输出格式
  输出一个整数,表示这只股票这n天中的最大波动值。
样例输入
6
2 5 5 7 3 5
样例输出
4
样例说明
  第四天和第五天之间的波动最大,波动值为|3-7|=4。
评测用例规模与约定
  对于所有评测用例,2 ≤ n ≤ 1000。股票每一天的价格为1到10000之间的整数。

解题思路

  1. 从左到右,依次求出相邻两天收盘价的波动值。注意波动值是一个绝对值。
  2. 求出所有波动值的最大值。

参考答案

n = int(input())
prices = [int(s) for s in input().split()]  #列表推导式
deltas = []  #存储波动值
for i in range(1, len(prices)):
    deltas.append(abs(prices[i] - prices[i-1]))
print(max(deltas))  #输出最大的波动值

小结

  1. 理解波动值的概念,这道题不难求解。
  2. 注意特殊的输入情形: n=2。可以构造测试用例测试一下。