用c++编写一个求排列数的程序

用到递归

第1个回答  2013-05-24
//求排列数
#include<iostream>
using namespace std;
void main()
{
int n,m,i,sum1=1,sum2=1;
cout<<"请输入A(n,m)中的(n m):";
cin>>n>>m;
for(i=1;i<=n;i++)
sum1*=i;
for(i=1;i<(n-m);i++)
sum2*=i;
cout<<"排列数A(n,m)="<<(sum1/sum2)<<endl;
}结果:本回答被网友采纳
第2个回答  2013-05-24
#include <iostream>
using namespace std;

void per( int* a, int i, int n )
{
if ( i == n ) {
for ( int k = 0; k < n; ++k )
cout << a[k] << ' ';
cout.put( '\n' );
} else {
for ( int k = i; k < n; ++k ) {
swap( a[k], a[i] );
per( a, i+1, n );
swap( a[k], a[i] );
}
}
}

int main()
{
int a[] = { 1,2,3,4 };
per( a, 0, 4 );
}
相似回答