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

📄 perm.cpp

📁 利用回溯法求解背包问题和全排列的算法
💻 CPP
字号:
#include "iostream.h" 
class pailie
{
  friend   int pailieh(int);
  private:  bool kk(int i); 
	    	void backtrack(int);
	        int *x;
	        int  n;
			int sum;
};
bool pailie::kk(int n)
{  
    if (n!=1)
    {
		for (int i=1;i<n;i++)
	
	{
		if (x[i]==x[n])
		return false;	
	}
		return true;
    }
	 else
		return true;

}
void pailie::backtrack(int t)
{

	if (t>n)
	{   
		sum+=1;
		for (int i=1;i<=n;i++)
		{
			cout<<x[i];
		}
	    	cout<<endl;
	}
    for (int j=1;j<=n;j++)
    {
		x[t]=j;
		if(kk(t))
		{
	    	backtrack(t+1);
		}
    }
	
}
int pailieh(int n)
{	
	pailie A;
	A.n=n;
	A.sum=0;
	int *p=new int[n+1];
	for (int i=0;i<=n;i++)
	{
		p[i]=0;
	}
    A.x=p;
	A.backtrack(1);
	return A.sum;
  

}
void main()
{   

  cout<<pailieh(5);
 
}

⌨️ 快捷键说明

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