1. 程式人生 > >CCF:201604-1 折點計數(C++)

CCF:201604-1 折點計數(C++)

這裡寫圖片描述

#include <iostream>
using namespace std;

int main()
{
    int n;
    cin>>n;
    int pre=-1;//前一個數
    int aft=-1;//後一個數
    int pre_state=0;//標定上一次的狀態-1表示遞減 1表示遞加
    int now_state=0;//標定本次的狀態-1表示遞減 1表示遞加
    int count=0;//折點個數
    while(n--)
    {
        if(pre==-1)
        {
            cin
>>pre; }else if(aft==-1){ cin>>aft; if(aft-pre>0) { pre_state=1; }else{ pre_state=-1; } pre=aft;//別忘了記錄變化 }else{ cin>>aft; if(aft-pre>0) { now_state=1
; }else{ now_state=-1; } if(now_state!=pre_state) { count++; pre_state=now_state; } pre=aft;//別忘了記錄變化 } } cout<<count; return 0; }

題目難度不大,解題思路清晰,就是不斷比較本次與上一次數值,然後判斷趨勢是否一致即可。祝願大家程式設計愉快,萬事如意。