行列式计算

来源:互联网 发布:健德门附近做软件 编辑:程序博客网 时间:2024/04/30 02:32


#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<< "\t\t\t\t\t行列式计算\n请输入阶数:";    cin >> n;    cout<<"请输入整个行列式\n";    for(int i=0; i< n; i++)    {        a[i] = i+1;        for(int j =0 ; j< n; j++)            cin >> b[i][j];    }    cout<<"counting...\n";    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\n",sum);    return 0;}


0 0
原创粉丝点击