當前位置:編程學習大全網 - 編程軟體 - c++編程對於遞歸函數的使用 應用於背包問題

c++編程對於遞歸函數的使用 應用於背包問題

#include <iostream>

using namespace std;

int list1[10];

//insersorrt function

void sorrt(int list[],int size)

{

for(int i=0;i<size;i++)

{

int max=list[i];

int k;

for(k=i-1;k>=0&&list[k]>max;k--)

{

list[k+1]=list[k];

}

list[k+1]=max;

}

}

void fun(int x,int y,int z,int list[],int m)

{

if(z==m)

{

for(int i=0;i<y;i++)

cout<<list1[i]<<" ";

cout<<endl;

}

else

{

for(x;x<10;x++)

{

if(list[x]<=m-z)

{

list1[y]=list[x];

fun(x+1,y+1,z+list[x],list,m);

}

}

}

}

int main()

{

int list[10];//declare a array

//cin the array in circulation

for(int i=0;i<10;i++)

cin>>list[i];

//sorrt the array in insert sorrtion

sorrt(list,10);

//cin the number you want to funtion

int m;

cin>>m;

//use recursion function to breake up the number m

fun(0,0,0,list,m);

return 0;

}

  • 上一篇:編程中如何打出觸發條件
  • 下一篇:浙江省海鹽市經濟開發區百步新區屬於哪個區
  • copyright 2024編程學習大全網