矩阵行列式计算模版

#include <iostream>
using namespace std;

const int MAXN = 100;

int det(int a[MAXN][MAXN], int n) {
    int res = 0;
    if (n == 1) {
        return a[0][0];
    } else {
        for (int j = 0; j < n; j++) {
            int t[MAXN][MAXN];
            for (int i = 1; i < n; i++) {
                int k = 0;
                for (int p = 0; p < n; p++) {
                    if (p == j) {
                        continue;
                    }
                    t[i - 1][k++] = a[i][p];
                }
            }
            res += ((j % 2 == 1) ? -1 : 1) * a[0][j] * det(t, n - 1);
        }
    }
    return res;
}

int main() {
    int n;
    cin >> n; // 输入矩阵的大小
    int a[MAXN][MAXN];
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cin >> a[i][j];
        }
    }

    cout << det(a, n) << endl; // 求解矩阵行列式并输出

    return 0;
}

posted on 2024-07-25 14:35  swj2529411658  阅读(10)  评论(0编辑  收藏  举报

导航