试题编号: | 201609-1 |
试题名称: | 最大波动 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: | 问题描述 小明正在利用股票的波动程度来研究股票。小明拿到了一只股票每天收盘时的价格,他想知道,这只股票连续几天的最大波动值是多少,即在这几天中某天收盘价格与前一天收盘价格之差的绝对值最大是多少。 输入格式 输入的第一行包含了一个整数n,表示小明拿到的收盘价格的连续天数。 输出格式 输出一个整数,表示这只股票这n天中的最大波动值。 样例输入 6 样例输出 4 样例说明 第四天和第五天之间的波动最大,波动值为|3-7|=4。 评测用例规模与约定 对于所有评测用例,2 ≤ n ≤ 1000。股票每一天的价格为1到10000之间的整数。 |
java:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] a = new int[n];
for(int i = 0; i < n; i++) {
a[i] = sc.nextInt();
}
int g = 0;
int l = 0;
for(int i = 0; i < n-1; i++) {
l = Math.abs(a[i+1] - a[i]);
g = Math.max(l, g);
}
System.out.println(g);
}
}
c++:
只写一个循环解决:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;cin>>n;
int a,b,maxv=0;
cin>>a;
for(int i=0;i<n-1;i++){
cin>>b;
if(maxv<abs(a-b))maxv=abs(a-b);
a=b;
}
cout<<maxv;
return 0;
}
#include <iostream>
#include <math.h>
#include<vector>
using namespace std;
int main()
{
int n;
cin>>n;
vector<int> a(n);
for(int i=0;i<n;i++)
{
cin>>a[i];
}
int Max=0;
int s;
for(int j=0;j<n-1;j++)
{
s=abs(a[j+1]-a[j]);
if(Max<s)
{
Max=s;
}
}
cout<<Max<<endl;
return 0;
}