CCF:201604-1 折點計數(C++)
阿新 • • 發佈:2019-02-14
#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;
}
題目難度不大,解題思路清晰,就是不斷比較本次與上一次數值,然後判斷趨勢是否一致即可。祝願大家程式設計愉快,萬事如意。