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;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章