c语言数字编排的问题
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?这个怎么做啊!最好标出每部的解释谢啦!!
程序代码:#include<iostream>
using namespace std;
class permute
{
private:
const int evn_size;
const int N;
protected:
int *x;
bool IsOk(int k)
{
for( int i=0;i<k;i++)
{
if( x[i]==x[k])
return false;
}
return true;
}
void cycle(int k)
{
if( k > evn_size)
{
for( int i=0;i<evn_size;i++)
cout<<x[i]<<" ";
cout<<endl;
}
else
{
for( int i=1;i<=N;i++)
{
x[k]=i;
if(IsOk(k))
cycle(k+1);
}
}
}
public:
permute(int m,int n):evn_size(m),N(n){
x=new int[m];
}
void outcome()
{
cycle(0);
}
};
int main()
{
permute per(3,4);
per.outcome();
return 0;
}