买股票问题
问题描述:
“逢低吸纳”是炒股的一条成功秘诀。如果你想成为一个成功的投资者,就要遵守这条秘诀:
"逢低吸纳,越低越买"这句话的意思是:每次你购买股票时的股价一定要比你上次购买时的股价低.按照这个规则购买股票的次数越多越好,看看你最多能按这个规则买几次。
给定连续的N天中每天的股价。你可以在任何一天购买一次股票,但是购买时的股价一定要比你上次购买时的股价低。写一个程序,求出最多能买几次股票。
输入:
第一行输入天数N
第二行输入对应的N天股票价格(注:输入可能有多组用例,1<=股价<=1000)
输出:
能够买进股票的最多天数
样例输入1:
12
68 69 54 64 68 64 70 67 78 62 98 87
样例输出1:
4
样例输入2
20
157 27 28 100 48 199 10 128 189 151 146 170 188 64 199 156 84 182 19 125
样例输出:
6
代码实现:
#include<stdio.h>
int getmax(int a,int b){
return a>b?a:b;
}
int main(){
int n;
int a[100];
int dp[100];
int i,j;
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
for(i=1;i<=n;i++){
dp[i]=1;
for(j=1;j<i;j++){
if(a[i]<a[j])
dp[i]=getmax(dp[i],dp[j]+1);
}
}
for(i=1;i<=n;i++){
for(j=1;j<=n-i;j++)
if(dp[j]>dp[j+1]){
int t=dp[j];
dp[j]=dp[j+1];
dp[j+1]=t;
}
}
printf("%d\n",dp[n]);
return 0;
}