Test Message

a410: 解方程

內容

話說同學們正在學習二元一次方程組。
  二元一次方程組的練習題鋪天蓋地地湧向同學們,同學們正苦惱於一次次地四則運算、移項、合併同類項等等。
  他們知道你很聰明,想請你幫他們編一個解二元一次方程組的程序。
  我們假定二元一次方程組的一般格式如下:(a,b,c,d,e,f 為常數,x,y 為未知數)
     ax+by=c
     dx+ey=f
  程序讀入 a,b,c,d,e,f 後,輸出解。
  當然,方程組也有可能存在無解或有無窮解的情況:如果(x,y)沒有相對應的實數對滿足方程組則無解;相反,如果(x,y)有多組對應的實數對滿足方程組則有無數解。
  如果無解,就輸出“No answer”;如果有無窮解,就輸出“Too many”。


輸入

輸入僅 1 行,包含 6 個整數,a,b,c,d,e,f。輸入數據保證正確。

1 1 2 1 -1 0

輸出

如果有解,那麼第 1 行先輸出“x=”,再輸出 x 的值,第 2 行先輸出“y=”,再輸出 y 的值,均保留 2 位小數,請參照樣例輸出。
  如果無解或有無數解則按要求輸出“No answer”或“Too many”。

x=1.00
y=1.00


解題思路

把二元一次方程式轉成程式碼。


完整程式碼

AC (2ms, 120KB)
#include<stdio.h>

double a, b, c, d, e, f, x, y;

int main()
{
scanf(" %lf %lf %lf %lf %lf %lf", &a, &b, &c, &d, &e, &f);
if (a * e == d * b)
puts(b * f == e * c ? "Too many" : "No answer");
else
printf("x=%.2lf\ny=%.2lf\n", (c * e - b * f) / (a * e - d * b), (d * c - a * f) / (b * d - a * e));
return 0;
}