話說同學們正在學習二元一次方程式。
二元一次方程式的練習題鋪天蓋地地用向同學們,同學們正苦惱於一次次的四則運算、移 項、合併同類項等等。
他們知道你很聰明,想請你幫他們編一個解二元一次方程式的程式。
我們假定二元一次方程式的一般格式如下;(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行先輸出“x=”,再輸出x的值,第2行先輸出“y=”,再輸出y的值,均保留2位小數,請參照範例輸出。
如果無解或有無數解則按要求輸出“No answer”或“Too many”。
範例輸入 :
1 1 2 1 -1 0
範例輸出 :
x=1.00
y=1.00
程式碼 :
#include<stdio.h> int main() { long a,b,c,d,e,f,temp; scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f); temp = a*e-b*d; if(temp == 0) { if(c*d == a*f) printf("Too many\n"); else printf("No answer\n"); } else { printf("x=%.2f\n",(double)(c*e-b*f)/temp); printf("y=%.2f\n",(double)(c*d-a*f)/-temp); } return 0; }
http://zerojudge.tw/ShowProblem?problemid=a410
沒有留言:
張貼留言