小明最近在学习玩股票,现在请设计一个程序帮他查找当天时段中最大的收益值和投资时间段。创建一个股票类,输入当天7个时间段的涨跌数据(INT 型),并在类中设计一个方法,计算出最大的收益值和投资时间段。(如果计算出的收益值小于或者等于0,则输出“won't buy!”.当输入 0 0 0 0 0 0 0 时输入结束,有多个时间段相同时输出第一个。)
Sample Input
-1 0 -1 -2 -3 -4 -5
1 2 3 4 5 6 7
1 2 3 -10 3 2 1
-2 -5 3 -4 5 7 -1
-1 0 1 -1 -1 -1 -1
0 0 0 0 0 0 0
Sample Output
wont't buy!
28 1 7
6 1 3
12 5 6
1 3 3
#include<iostream>
using namespace std;
class test
{
int a[7];
int first;
int latest;
int value;
int flag;
public:
bool judge;
test();
void run();
friend ostream& operator <<(ostream& out,test& a);
};
test::test(){
int i,sum=1;
for(i=0;i<7;i++)
cin>>a[i],sum*=!a[i];
if(sum==0)
judge=1;
else
judge=0;
value=a[0];first=latest=flag=0;
}
void test::run(){
int i,j,k,temp;
for(i=0;i<7;i++)
{
temp=0;
if(a[i]==0&&i<6)
i++;
for(j=i;j<7;j++)
{
temp+=a[j];
if(temp==0)
{
break;
}
if(temp>value)
{
value=temp;
latest=j+1;
flag=1;
}
}
if(flag==1)
first=i+1,flag=0;
}
return;
}
ostream& operator <<(ostream& out,test& a){
if(a.value<=0)
out<<"won't buy!"<<endl;
else{
out<<a.value<<" "<<a.first<<" "<<a.latest<<endl;
}
return out;
}
int main()
{
while(1)
{
test t;
if(t.judge)
t.run();
else
break;
cout<<t;
}
return 0;
}