CCF计算机软件能力认证考试 201609-1 最大波动 C++

试题编号: 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之间的整数。

C++实现:

方法一:使用数组存放每天收盘价格,通过数组下标依次比较波动值,得出最大波动值(俩次循环)

#include<iostream>
#include<cmath>
using namespace std;


int main()
{
	int n;
	cin>>n;
	int a[1000],i=0,max=0,r;
	for(i=0;i<n;i++)
		cin>>a[i];
	for(i=0;i<n-1;i++)
	{
		r=abs(a[i+1]-a[i]);
		if(r>max)
			max=r;
	}
	cout<<max<<endl;
	return 0;
}

方法二:每输入一个价格,就与前一天的做差,比较出最大波动值(一个循环即可)

#include<iostream>
#include<cmath>
using namespace std;


int main()
{
	int n;
	cin>>n;
	int first,second,r;
	cin>>first;
	int max=0;
	for(int i=1;i<n;i++)
	{
		cin>>second;
		r=second-first;
		if(abs(r)>max)
			max=abs(r);
		first=second;
	}
	cout<<max<<endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_39830846/article/details/88553369