#include <iostream>
#include <cmath>
using namespace std;
void copymatrix(int a[][10],int b[][10],int n,int i)
{
int x,y,j;
for(x=1;x<n;x++)
{
for(y=0,j=0;y<n;y++)
{
if(y!=i)
{
b[x-1][j++]=a[x][y];
}
}
}
}
int digui(int a[][10],int n)
{
int i,res;
res=0;
if(n==1)
{
return a[0][0];
}
if(n==2)
{
return a[0][0]*a[1][1]-a[0][1]*a[1][0];
}
else
{
int b[10][10];
for(i=0;i<n;i++)
{
copymatrix(a,b,n,i);//求余子式
res+=pow(-1,i)*a[0][i]*digui(b,n-1);
}
}
return res;
}
int main()
{
int n,i,j;
int a[10][10];
cin>>n;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cin>>a[i][j];
}
}
//计算行列式
int res=digui(a,n);
cout<<res<<endl;
return 0;
}
矩阵行列式的计算
最新推荐文章于 2024-08-22 09:26:13 发布