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

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

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

出處:http://www.tcgs.tc.edu.tw:1218/ShowProblem?problemid=d089

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *