zoukankan      html  css  js  c++  java
  • // 40、用1、2、2、3、4、5这六个数字,写一个main函数,打印出所有不同的排列, // 如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连.

    //	40、用1、2、2、3、4、5这六个数字,写一个main函数,打印出所有不同的排列,
    //	如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连.
    void permutation(int a[],int i,int n,int pre)// 我们保留前一个位置的值
    {
    	if(i==n-1)
    	{
    		// 验证是否合格
    		for(int k=0;k<n;k++)
    		{
    			if(k==2&&a[k]==4)
    			{
    				cout<<"error"<<endl;
    				system("pause");
    			}
    			if(k+1<n&&(a[k]==3&&a[k+1]==5||a[k]==5&&a[k+1]==3))
    			{
    				cout<<"error"<<endl;
    				system("Pause");
    			}
    		}
    		for(int k=0;k<n;k++)
    		{
    			cout<<setw(5)<<a[k];
    		}
    		cout<<endl;
    		// 输出
    		return;
    	}
    	for(int j=i;j<n;j++)
    	{
    		swap(a[i],a[j]);
    		if(i==2&&a[i]==4)
    		{
    			swap(a[i],a[j]);
    			continue;
    		}
    		if(a[i]==3)
    		{
    			if(i+1<n&&a[i+1]==5||pre==5)
    			{
    				swap(a[i],a[j]);
    				continue;
    			}
    			
    		}
    		if(a[i]==5)
    		{
    			if(i+1<n&&a[i+1]==3||pre==3)
    			{
    				swap(a[i],a[j]);
    				continue;
    			}
    		}
    		permutation(a,i+1,n,a[i]);
    		swap(a[i],a[j]);
    	}
    }
    

      

  • 相关阅读:
    元组的魔法
    列表的魔法
    基础知识
    Pycharm常用快捷键
    django-debug-toolbar
    char 与 varchar 的区别
    Python试题(web篇)
    博客园样式
    网络编程部分试题
    python复习基础题目
  • 原文地址:https://www.cnblogs.com/dyc0113/p/3297547.html
Copyright © 2011-2022 走看看