Cのアルゴリズムのメモを取ってきたいと思います。
さすがにここは日本語で。
ICPC部の問題中心に解いていきます。
あくまで初心者なので、成長記録もかねて。
-----------------------------------------------------
Simultaneous Equation
連立方程式
ax + by = c
dx + ey = f
の解、x, y を出力して終了するプログラムを作成して下さい。
a, b, c, d, e, f はそれぞれ、 -1000 以上 1000 以下の実数
とし、連立方程式の解が一意に存在するように与えれれるもの
とします。
Input
複数のデータセットが与えられます。入力
の最後まで処理して下さい。1つのデータセットが1行に与え
られます。1つのデータセットに a, b, c, d, e, f が1つ
のスペースで区切られて与えられます。
Output
各データセッ
トに対して、x, y を1つのスペースで区切って1行に出力して
下さい。各値は小数点以下第3位まで出力して下さい。小数点
以下第4位を四捨五入して下さい。
Sample Input
1 2 3 4 5 6
2 -1 -2 -1 -1 -5
Output for the Sample Input
-1.000 2.000
1.000 4.000
-----------------------------------------------------
逆行列を使ってといてみました。
ライブラリって使っていいのかな。。。うまく通りませんでした。
memo:コンパイルはgcc hoge.c -lm
#include<stdio.h>
#include<math.h>
int main (void){
int a,b,c,d,e,f;
double x,y,delta;
scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
delta=1.0/(a*e-b*d);
x=delta*(e*c-b*f);
y=delta*(a*f-c*d);
x=floor(x*1000+0.5)/1000;
y=floor(y*1000+0.5)/1000;
printf("%.3lf %.3lf¥n",x,y);
return 0;
}