# Mathematics# Equation Solving# Basic Arithmetic

b514 - 解二元一次聯立方程式之根-商競103

🔗 前往 ZeroJudge 原題

題目描述

題目要求解二元一次聯立方程式 ax + by = cdx + ey = f 的解。輸入包含多組測試資料,每組資料包含六個整數 a, b, c, d, e, f,代表聯立方程式的係數。輸出每組資料對應的 xy 的值。題目保證輸入的方程式有唯一解,且解為整數。

解題思路

題目要求解二元一次聯立方程式,可以使用克拉瑪公式 (Cramer's rule) 求解。克拉瑪公式的解法如下:

x = (ce - bf) / (ae - bd) y = (cd - af) / (bd - ae)

程式碼直接套用克拉瑪公式計算 xy 的值,並輸出結果。

複雜度分析

  • 時間複雜度: O(n)
  • 空間複雜度: O(1)

程式碼

#include <iostream>
int main() {
 int n,a,b,c,d,e,f;
 std::cin>>n;
 for(;n>0;n--){
	std::cin>>a>>b>>c>>d>>e>>f;
	std::cout<<(c*e-b*f)/(a*e-b*d)<<" "<<(c*d-a*f)/(b*d-a*e)<<"\n";
 }
}

Discussion