0%

C++ 台中區 106-5 以價格的移動平均值判斷買賣時機

基本上就是照著題目敘述稀里糊塗寫在 if 裡面就可以了,我還用了前綴和,這樣比較方便算區間和。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<iostream>
using namespace std;

int main(){
int k[20]={0},p[20]={0};
for(int i=1;i<=15;i++){
cin>>k[i];
p[i]=p[i-1]+k[i];
}
for(int i=11;i<=15;i++){
cout<<k[i];
if((p[i]-p[i-10]) > (p[i-1]-p[i-1-10]) &&
(p[i]-p[i-5]) > (p[i-1]-p[i-1-5]) &&
(k[i]*5> (p[i]-p[i-5]) && (p[i]-p[i-5])*2 > (p[i]-p[i-10])) &&
(5*k[i]*10 < 6*(p[i]-p[i-10])*10/10) ){
cout<<"B";
}else if(5*k[i]*10 > 6*(p[i]-p[i-10])*10/10 ||
(k[i]*10< (p[i]-p[i-5])*10/5 && (p[i]-p[i-5])*2 < (p[i]-p[i-10])) ||
(p[i]-p[i-10]) < (p[i-1]-p[i-1-10]) ){
cout<<"S";
}else{
cout<<"N";
}
cout<<" ";
}
return 0;
}