抽屉原理(c/c++,完成后追加5分)

来源:百度知道 编辑:UC知道 时间:2024/05/21 09:49:55
任意给定5个数字,其中必定存在3个数字已经有序(或者升序,或者降序),找出这5个数字中最长的升序或降序序列。
例如:1,7,5,3,9。则{1,7,9},{1,5,9},{1,3,9}都是最长的升序序列;
而{7,5,3}是最长的降序序列。
再如:1,3,2,5,7。最长的升序序列为{1,3,5,7}和{1,2,5,7}。

完成起来挺麻烦,提供一个思路。
定义一个类number用于存储数字的信息
class number
{
pbulic:
number(int i,int ind)
{num=i;
index=ind;
asdcount[5]={0,0,0,0,0};
descount[5]={0,0,0,0,0};
}
AppendAsdcount(int e)
{
for(int d;d<5;d++)
{
switch(asdcount[i])
case 0:asdcount[i]=e;break;
case 1:continue;
default:break;
}
}
AppendDescount(int e)
{
for(int d;d<5;d++)
{
switch(descount[i])
case 0:descount[i]=e;break;
case 1:continue;
}
}
GetIndex();
Getasdcount();
Getdescount();
private:
int index;
int num;
int asdcount[5];
int descount[5]
}
用于存放升序的一组数字
Class asdcountnum
{