CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

一道编程题 ,怎样编写?

楼主flybird70()2001-09-05 18:02:13 在 VC/MFC / 基础类 提问

23,21,87,12,67,96,51,3,48,60   共10个数,从这10个数中任选4个数,形  
  成4个数的数组,如:87,60,96,3   及23,48,51,60.....,请编程输出4元  
  素的全部组合,谢谢! 问题点数:20、回复次数:13Top

1 楼Semigod()回复于 2001-09-05 18:10:16 得分 0

  1000-   9999,只要数字中没有重复数字就合要求,就根据数字取数据  
  Top

2 楼flybird70()回复于 2001-09-05 18:25:06 得分 0

我是一莱鸟,能否给出详细步骤?Top

3 楼phoenix96_2000(Arcrest)回复于 2001-09-05 18:36:44 得分 0

下次来说Top

4 楼lyneville(心佛)回复于 2001-09-05 18:39:45 得分 0

enumTop

5 楼ray2_ls(轻衫踏雪)回复于 2001-09-05 19:06:03 得分 0

gzTop

6 楼zleil(西狂)回复于 2001-09-05 19:14:30 得分 0

用递归算法,自己好好想把。Top

7 楼Belle(不会游泳的鱼....)回复于 2001-09-05 19:18:15 得分 0

int   a[4],b;  
  static   int   mid[]={23,21,87,12,67,96,51,3,48,60};/////原数组  
  int   i=0;  
  for(   i=0;i<4;i++)                 //  
  {  
                b=(10-i)*rand()/32767;//////////取随机顺序                
                a[i]=mid[b];  
                mid[b]=mid[9-i];  
                mid[9-i]=a[i];  
  }  
  //////数组a[]即是所求Top

8 楼Belle(不会游泳的鱼....)回复于 2001-09-05 19:20:57 得分 0

看错了,全部组合得用递归算法Top

9 楼zleil(西狂)回复于 2001-09-05 19:28:23 得分 0

节约网费Top

10 楼740609(蜘蛛)回复于 2001-09-05 19:36:02 得分 0

同意Semigod()Top

11 楼Phourm()回复于 2001-09-05 20:00:43 得分 0

它们有顺序之分吗?  
  没有时:(有顺序时可以从没有中排列得到)  
  用一个32位的数(只用到了低10位,16位也可以)的各个位来标明对应的数要不要在数组中  
  比如说:(0x0286)000000   1010000110   说明第1,2,7和9(0开始计)的数被选择  
  编程:  
  int   t;  
  for(DWORD   i=0x0000;i<0x0200;i++)  
  {  
          t=0;  
          for(int   j=0;j<10;j++)  
          {  
                  if(   i   &   1<<j   )  
                            t++;  
                  if(t>4)  
                            break;  
          }  
          if(t==4)  
          {  
                  //从i中得到要选择的数(不想写了)  
          }  
  }Top

12 楼Belle(不会游泳的鱼....)回复于 2001-09-05 20:23:40 得分 20

hehe,笨方法又有了  
  CString   st,m_data;  
  int   a[4];  
  static   int   mid[]={23,21,87,12,67,96,51,3,48,60};  
  int   i,i1,i2,i3,i4,ii;  
  for(   i=0;i<7;i++)  
        for(i1=i;i1<7;i1++)  
              for(i2=i1+1;i2<8;i2++)  
      for(i3=i2+1;i3<9;i3++)  
                for(i4=i3+1;i4<10;i4++)  
      {                                               m_data+="\r\t";    
      a[0]=mid[i1];  
      a[1]=mid[i2];  
      a[2]=mid[i3];  
      a[3]=mid[i4];  
                                          for(ii=0;ii<4;ii++)  
  {  
                          st.Format   ("%d   ",a[ii]);  
                                          m_data+=st;                
  }  
                                 
    }  
  ////////调试通过///////显示m_data可以查看结果;Top

13 楼flybird70()回复于 2001-09-05 21:44:16 得分 0

怎么给分Top

相关问题

  • 一道编程题
  • 一道编程题
  • 一道编程题 ,(高分)
  • 求解一道编程题
  • 一道编程题目
  • 请问:一道编程题
  • 请教一道编程题
  • 请问一道编程题?
  • 用vb编写有关数据库编程的问题
  • 高质量C++编程指南中编写函数 strcpy问题。

关键词

  • 数字
  • 个数

得分解答快速导航

  • 帖主:flybird70
  • Belle

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo