1. 程式人生 > >CCF201609-01 C++ 100分 最大波動

CCF201609-01 C++ 100分 最大波動

問題描述:

問題描述

  小明正在利用股票的波動程度來研究股票。小明拿到了一隻股票每天收盤時的價格,他想知道,這隻股票連續幾天的最大波動值是多少,即在這幾天中某天收盤價格與前一天收盤價格之差的絕對值最大是多少。

輸入格式

  輸入的第一行包含了一個整數n,表示小明拿到的收盤價格的連續天數。  第二行包含n個正整數,依次表示每天的收盤價格。

輸出格式

  輸出一個整數,表示這隻股票這n天中的最大波動值。

樣例輸入

62 5 5 7 3 5

樣例輸出

4

樣例說明

  第四天和第五天之間的波動最大,波動值為|3-7|=4。

評測用例規模與約定

  對於所有評測用例,2 ≤ n ≤ 1000。股票每一天的價格為1到10000之間的整數。

  1. 基本思路

題目要求的是求出最大波動,所以我們只需要把每次的數值與前一天的數值差值的絕對值進行比較,最後得到最大的數值即是最大波動值。

  1. 流程

首先輸入數字的數量,接著輸入數字,然後從第二天開始,用temp來暫時儲存當天與前一天的差值,利用abs()函式來將差值變為正數,再與max進行比較,將所有的天數迴圈完之後,輸出最大的差值,即為最大波動值

5.程式碼實現

#include<iostream>

#include<cmath>

using namespace std;

int main()

{

int num[4321],max=-12345,i,x,temp;

cin>>x;

for(i=1;i<=x;i++)

cin>>num[i];

for(i=2;i<=x;i++)

{

temp=num[i]-num[i-1];

if(max<abs(temp))

max=abs(temp);

}

cout<<min;

return 0;

 }