ZJANS

d623. 反方陣

Medium Last Update: 2026/02/01
數學

給一個二階矩陣 M
輸出他的反方陣


解法一

M=[abcd]M = \begin{bmatrix} a & b \\ c & d \\ \end{bmatrix} M1=1det(M)[dbca],  det(M)=dbca  M^{-1} = \frac{1}{det(M)}\begin{bmatrix} d & -b \\ -c & a \\ \end{bmatrix},\; det(M) = \begin{vmatrix} d & -b \\ -c & a \\ \end{vmatrix}\;

✅ 完整代碼

評分結果(參考) : AC (1ms, 316KB)

#include<bits/stdc++.h>
#define int long long
using namespace std;

signed main(){
    int m[2][2];
    while(true){
        scanf("%d", &m[0][0]);
        if(m[0][0]==0) break;
        
        scanf("%d %d %d", &m[0][1], &m[1][0], &m[1][1]);
        
        double det = m[0][0]*m[1][1]-m[0][1]*m[1][0];
        if(det == 0){
            printf("cheat!\n");
        }
        else{
            printf("%.5f %.5f\n%.5f %.5f\n",
                m[1][1]/det,
                -m[0][1]/det,
                -m[1][0]/det,
                m[0][0]/det
            );
        }
    }
    
    return 0;
}