找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1144|回复: 9

序列小游戏

[复制链接]
发表于 2009-11-2 01:54:26 | 显示全部楼层 |阅读模式 IP:江苏扬州
要求用C++语言编程,在Visual C++环境下调试完成;

任意给定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}。

自动生成各种可能的序列,对于5个数字所有可能的序列为:
{0,1,2,3}、{0,1,2,4}、{0,1,3,4}、{0,2,3,4}、{1,2,3,4}
{0,1,2}、{0,1,3}、{0,2,3}、{1,2,3}
{0,1,4}、{0,2,4}、{1,2,4}
{1,3,4}
{2,3,4}、{0,3,4}
考察各种可能的序列是否升序或是降序,若是则打印;

新手呀,大家帮帮忙吧!
发表于 2009-11-2 01:54:29 | 显示全部楼层 IP:江苏扬州
Are these two problems or just one?

任意给定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}。

This can be done by first copy your sequence a to another sequence b,
sort b, and then find the larget common subsequence of a and b.

You should be able to write your own algorithm for LCS.

自动生成各种可能的序列,对于5个数字所有可能的序列为:
{0,1,2,3}、{0,1,2,4}、{0,1,3,4}、{0,2,3,4}、{1,2,3,4}
{0,1,2}、{0,1,3}、{0,2,3}、{1,2,3}
{0,1,4}、{0,2,4}、{1,2,4}
{1,3,4}
{2,3,4}、{0,3,4}
考察各种可能的序列是否升序或是降序,若是则打印;

This can be done by using some recursive algorithm to permute the numbers. You may first want to try to generate all the n! permutations for 1..n.
回复

使用道具 举报

发表于 2009-11-2 01:54:32 | 显示全部楼层 IP:江苏扬州
呵呵。。。一个问题啦

“任意给定5个数字,其中必定存在3个数字已经有序(或者升序,或者降序),找出这5个数字中最长的升序或降序序列。”
回复

使用道具 举报

发表于 2009-11-2 01:54:34 | 显示全部楼层 IP:江苏扬州
发点实际的,比如答案什么的啊?!!
回复

使用道具 举报

发表于 2009-11-2 01:54:37 | 显示全部楼层 IP:江苏扬州
  1. #include <iostream>
  2. using namespace std;
  3. int main(){
  4. int a[] = {1,2,3,4,5};
  5. for (int i = 0;i < 5;++i)
  6. for (int j = i+1;j < 5;++j)
  7. for (int k = j+1;k < 5;++k){
  8. cout << a[i] << a[j] << a[k] << "\t";
  9. for (int l = k+1;l < 5;++l)
  10. cout << a[i] << a[j] << a[k] << a[l] << "\t";
  11. }
  12. system("pause");
  13. }
复制代码

实际的来了,可以输出5个数排列的15种可能,当然还有一种是本身。
吃饭去啦!
回复

使用道具 举报

发表于 2009-11-2 01:54:39 | 显示全部楼层 IP:江苏扬州
  1. #include <iostream>
  2. using namespace std;
  3. bool is_ordered(int a,int b,int c,int d = 0){
  4. if (d)
  5. return (a>b && b>c && c>d) || (a<b && b<c && c<d);
  6. else
  7. return (a>b && b>c) || (a<b && b<c);
  8. }

  9. int main(){
  10. int a[] = {1,3,2,5,7};

  11. for (int i = 0;i < 5;++i)
  12. for (int j = i+1;j < 5;++j)
  13. for (int k = j+1;k < 5;++k){
  14. if (is_ordered(a[i],a[j],a[k]))
  15. cout << a[i] << a[j] << a[k] << "\n";
  16. for (int l = k+1;l < 5;++l)
  17. if (is_ordered(a[i],a[j],a[k],a[l]))
  18. cout << a[i] << a[j] << a[k] << a[l] << "\n";
  19. }
  20. system("pause");
  21. }
复制代码

复习真累,写点代码,好了,再去复习啦!
回复

使用道具 举报

发表于 2009-11-2 01:54:41 | 显示全部楼层 IP:江苏扬州
谢谢呀!偶自己弄一下!
回复

使用道具 举报

发表于 2009-11-2 01:54:43 | 显示全部楼层 IP:江苏扬州
到期末考试了,现在全是求助的了。还有没有别的编程方法,比如用结构体类型处理。
回复

使用道具 举报

发表于 2009-11-2 01:54:46 | 显示全部楼层 IP:江苏扬州
aipb2007...我还是觉得你太包办了... 这样人家失去了自己思考的机会.. 只能限于"理解程序"...
回复

使用道具 举报

发表于 2009-11-2 01:54:48 | 显示全部楼层 IP:江苏扬州
哦,我错了,我是那哈没事干,就写了。
还有我有的代码一般也会贴。

以后注意!

嘿嘿~~~~~~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 23:39 , Processed in 0.184613 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表