題目敘述
每筆資料輸入有一6個整數,分別是a、b、c、d、e、f。
題目要求解出ax + by = c、dx + ey = f的解。輸出的小數點保留至第二位,輸出格式請見範例輸出。如果無解的話輸出"No answer",如果答案有無限多個的時候輸出"Too many"。
範例輸入
1 1 2 1 -1 0
範例輸出
x=1.00
y=1.00
解題思路
可是使用範例程式碼中的公式來解這個方程式。輸出的部分可以使用Stdio.h中的printf("%.2f)來只輸出小數點後兩位,詳情請見範例程式碼。
解題程式碼如下 (僅供參考):
#include <iostream>
#include <stdio.h>
using namespace std;
int main() {
int a1, b1, c1, a2, b2, c2;
scanf("%d%d%d%d%d%d", &a1, &b1, &c1, &a2, &b2, &c2);
int deltax1,deltax2,delta;
float x1, x2;
deltax1=c1*b2-b1*c2;
deltax2=a1*c2-c1*a2;
delta=a1*b2-a2*b1;
if(delta != 0)
{
x1=(float)deltax1/delta;
x2=(float)deltax2/delta;
printf("x=%.2f\n", x1);
printf("y=%.2f\n", x2);
}
else
{
if(deltax1==0 && deltax2==0)
cout<<"Too many"<<endl;
else
cout<<"No answer"<<endl;
}
}
留言
張貼留言