æ°å¦æ¹æ³:
å½ 1 å¨ ä¸¤ç«¯æ¶ , 2 å¯æ¾ 2个ä½ç½® , 35å ¨æå , 46å ¨æå ;
æ æ 2 * 2 * 2! * 2! = 16 ç§;
å½ 1 å¨ ä¸é´æ¶ , 2 å¯æ¾ 1个ä½ç½® , 35å ¨æå , 46å ¨æå ;
æ æ 4 * 1 * 2! * 2! = 16 ç§;
æ»æ åµä¸º 16 + 16 = 32 ç§.
C++ç¨åºä¸ºï¼
#include <iostream>
using namespace std;
void Exch2Data(char& item1,char& item2)
{
char tmp = item1;
item1 = item2;
item2 = tmp;
}
void Permutation(char* str,int l,int r)
{
if(l==r)
{
int t = 0;
for (int i = 0; i < r ; i++)
{
if ((str[i + 1] - str[i]) % 2 == 0 || (str[i + 1] + str[i]) == ('1' + '2'))
{
t = 1;
break;
}
}
if ( t == 0)
{
for (int i = 0; i <= r ; i++)
{
cout << str[i];
}
cout << "\t";
}
}
else
{
for(int i=l;i<=r;++i)
{
Exch2Data(str[l],str[i]);
Permutation(str,l+1,r);
Exch2Data(str[i],str[l]);
}
}
}
int main()
{
char str[]="123456";
Permutation(str,0,5);
cout << endl;
}
è¿è¡ç»æ为ï¼