#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
int main()
{
int n=0;
int a[50]= {0};
int b[50][50]= {0};
int sum =0,x;
cout<< " 行列式计算
请输入阶数:";
cin >> n;
cout<<"请输入整个行列式
";
for(int i=0; i< n; i++)
{
a[i] = i+1;
for(int j =0 ; j< n; j++)
cin >> b[i][j];
}
cout<<"counting...
";
do
{
x=1;
for(int i=0 ; i< n; i++)
{
x*=b[i][a[i]-1];
}
int flog=0;
for(int i =0; i< n ; i++) //计算逆序数
{
for(int j =i ; j<n ; j++)
if(a[i]>a[j])
flog++;
}
if(flog&1) //奇数和1按位于等于1
{
sum-=x;
}
else
{
sum+=x;
}
}while(next_permutation(a,a+n));
printf("此行列式结果为:%d
",sum);
return 0;
}