TOJ 99

TOJ 99

題目

https://toj.tfcis.org/oj/pro/99/

給一個二階矩陣 \begin{vmatrix} a&b\c&d \end{vmatrix}

求 $\left| ad - bc \right|$ 是否非零,誤差值在小數點後 7 位

想法

這題是要測試是否知道使用 eps

在 C/C++ 當中,小數點只能是”大致上”準確的,所以像是小數再判斷是否為零不能直接判斷

我們通常會設定一個誤差值,像是本題就是 $10^{-7}$ ,當我們的值小於該誤差值就會被判定為 0

所以我們只需要改用 eps 來判斷就可以囉

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//By Koios1143
#include<iostream>
#include<cmath>
using namespace std;
const double eps=1e-7;
double a,b,c,d;
int main(){
cin>>a>>b>>c>>d;
double result = a*d-b*c;
if(fabs(result)>=eps){
cout<<"1\n";
}
else{
cout<<"0\n";
}
return 0;
}

時間複雜度分析

計算以及判斷都只有一次,時間複雜度為 $O(1)$