j568 - 無預警小考 ( 上 )
題目描述
題目要求讀取多組測試案例,每組案例包含若干個一元二次方程式的係數,並按照指定格式輸出這些方程式。輸出時需要注意係數的顯示方式,例如省略係數為 1 的 x^2,以及處理正負號。
解題思路
程式的主要邏輯是讀取測試案例的數量 t,然後對於每個案例,讀取方程式的數量 n。接著,對於每個方程式,讀取三個係數 a、b 和 c,並按照題目要求的格式輸出方程式。程式使用 cin 讀取輸入,cout 輸出結果。特別注意處理係數為 0、1、-1 以及正負號的情況,以符合題目要求的輸出格式。
複雜度分析
- 時間複雜度: O(t * n)
- 空間複雜度: O(1)
程式碼
#include <iostream>
using namespace std;
long long n,t,a,b,c;
int main(){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> t;
for(int ca=1;ca<=t;++ca){
cin >> n;
cout << "請使用配方法解下列一元二次方程式\n";
for(int i=1;i<=n;++i){
cout << "\n" << i << ". ";
cin >> a >> b >> c;
if(a==1){
cout << "x^2";
}
else if(a==-1){
cout << "-x^2";
}
else{
cout << a << "x^2";
}
if(b==0){
}
else if(b==-1){
cout << "-x";
}
else if(b<0){
cout << b << "x";
}
else if(b==1){
cout << "+x";
}
else{
cout << "+" << b << "x";
}
if(c==0){
}
else if(c<0){
cout << c ;
}
else{
cout << "+" << c ;
}
cout << "=0\n";
}
cout << "\n考試要加油口屋\n";
}
}