[Atelier Blue アトリエブルー]Homeコンテストパソコン甲子園2003年本選>7問目

7問目(連立方程式)

問題

連立方程式


ax + by = c
dx + ey = f

の解x,yを出力して終了するプログラムを作成する。a,b,c,d,e,f はそれぞれ、-1000以上1000以下の実数とし、連立方程式の解が一意に存在するものとする。

私の疑問:「-0.000」という出力は大丈夫なのか?

入力


a(実数)
b(実数)
c(実数)
d(実数)
e(実数)
f(実数)

出力


x(実数)
y(実数)

注:小数点以下第3位まで出力すること。第4位は切り上げ切り捨ていずれでも良い。

入力例


1.0
2.0
3.0
4.0
5.0
6.0

出力例


-1.000
2.000

解き方例

まあ、たいていの人は普通に方程式を解くでしょう。式は次のようになります。


x=(e*c - b*f)/(e*a - b*d);
y=(d*c - a*f)/(b*d - a*e);

ソースコード

お持ち帰り

C/C++

#include <stdio.h>

int main(){
    double a,b,c,d,e,f,x,y;

    scanf("%lf %lf %lf %lf %lf %lf",&a,&b,&c,&d,&e,&f);

    x=(e*c - b*f)/(e*a - b*d);
    y=(d*c - a*f)/(b*d - a*e);

    printf("%f\n%f\n",x,y);

    return 0;
}


その他

空いている人が~以下略。とりあえず、分母が0になることは考えなくても良いようです(その場合解が一意に存在しないから)。


ページの一番上へ
前のページへ 一覧に戻る 次のページへ
初版2006-5-5
[Atelier Blue アトリエブルー]Homeコンテストパソコン甲子園2003年本選>7問目