⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sy8.cpp

📁 给定一个正整数的集合,子集和问题要求在这个正整数集合中,找出其和不超过正整数C的最大和数的子集
💻 CPP
字号:
#include   <iostream>   
using   namespace   std;   
    
  const   int   MAX=11;   
  const   int   b[MAX]={1,2,3,4,5,8,11,23,45};   
  int   x[MAX]={0};   
  int   sum;   
    
  int   Sum();   
  int   SumOfSub(int   ,int   ,int   );   
  void   Display(int *);   
    
  int   main()   
  {   
          cout<<"enter   the   sum:"<<endl;   
  cin>>sum;   
  int   s=0,k=0,r;   
  r=Sum();   
  // cout<<r<<endl;   
  SumOfSub(s,k,r);   
  system("pause");   
  return   0;   
  }   
    
  int   Sum()   
  {   
  int   s=0;   
  for(int   i=0;i<MAX;i++)   
  {   
                  s+=b[i];   
  }   
  return   s;   
  }   
    
  int   SumOfSub(int   s,int   k,int   r)   
  {   
  if(k>=8)   return   0;   
  x[k]=1;   
  if(s+b[k]==sum)   
  {   
  Display(x);   
  }   
  if(s+b[k]<sum)   
  SumOfSub(s+b[k],k+1,r-b[k]);   
  x[k]=0;   
  SumOfSub(s,k+1,r-b[k]);   
  return   0;   
  }   
    
  void   Display(int   *x) 
  {   
  for(int   i=0;i<MAX;i++)   
  {   
  if(x[i]==1)   
  cout<<b[i]<<"\t";   
  }   
  cout<<endl;   
  } 
  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -