2-8.cpp

来自「子集和问题.rar:这是我学算法设计时的总结,包括定长和不定长做法(也就是回朔法」· C++ 代码 · 共 41 行

CPP
41 行
字号
#include  <iostream>
using namespace std;

int const n=11;
int flag[11]={0};
int num;

int sum(int A[])
{
	int i,s;
	for(i=0,s=0;i<n;i++)
		if(flag[i])
		s=s+A[i];
	return s;
}


void Trv(int A[],int i)
{
	if(i>=n){
	if(sum(A)==num)
	{
		for(int j=0;j<n;j++)
			if(flag[j])		cout<<A[j]<<"\t";
			cout<<endl;
	}
	return ;
	}
	flag[i]=1;	Trv(A,i+1);
	flag[i]=0;	Trv(A,i+1);
}


void main()
{
	cout<<"input the number:"<<endl;
	cin>>num;
	int A[]={2,3,4,6,7,9,11,13,14,16,17};
	Trv(A,0);
}

⌨️ 快捷键说明

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