给定一个N×N的矩阵A,求|A|。
输入格式:
第一行一个正整数N。 接下来N行,每行N个整数,
第i行第j个数字表示A[i][j]。
输出格式 一行,输出|A|。
java代码:
import java.util.Scanner; public class Main { public static int f(int arr[][], int n) { if(n==1) return arr[0][0]; if(n==2) { return (arr[0][0]*arr[1][1]-arr[0][1]*arr[1][0]); } else { // sum保存arr矩阵的行列式|A| int sum = 0; // 根据求行列式的公式计算 for(int i=0;i<n;++i) { // 求出每个子矩阵 int arr1[][] = new int[n-1][n-1]; for(int j=1;j<n;++j) { int count = 0; for(int k=0;k<n;++k) { if(k!=i) arr1[j-1][count++] = arr[j][k]; } } int temp = arr[0][i]*f(arr1,n-1); if(((i+1+1)%2)!=0) temp = (-1)*temp; sum+=temp; } return sum; } } public static void main(String[] args) { int n; Scanner in = new Scanner(System.in); n = in.nextInt(); int arr[][] = new int[n][n]; for(int i=0;i<n;++i) { for(int j=0;j<n;++j) { arr[i][j] = in.nextInt(); } } System.out.println(f(arr,n)); } }