2200 - 求方程的解
时间限制 : 1 秒
内存限制 : 128 MB
求方程
的解。
如果有实数解,请判定实数解的个数,并输出。(保留2位小数)
如果没有是数解,请输出 no real roots 。
求根公式:<img src="http://tk.hustoj.com:80/attached/image/20131207/20131207091414_54416.png" alt="" />
题目输入
输入 a,b,c 三个数的值。
题目输出
输出相应判定结果或解。
输入/输出样例
输入格式
1 5 2
输出格式
-0.44 -4.56
C语言解答
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { double a,b,c,d; scanf("%lf%lf%lf",&a,&b,&c); if(b*b<4*a*c) printf("no real roots"); else if(b*b==4*a*c) printf("%.2f",(-b)/(2*a)); else if(b*b>4*a*c) printf("%.2f\n%.2f",((-b)+sqrt(b*b-4*a*c))/(2*a),((-b)-sqrt(b*b-4*a*c))/(2*a)); return 0; }
C++解答
#include <iostream> #include <iomanip> #include <cmath> using namespace std; int main() { double a,b,c; cin>>a>>b>>c; double delt=b*b-4*a*c; double qdel=((-1)*b)/(2*a); double delta=sqrt(delt)/(2*a); if(delt==0) cout<<fixed<<setprecision(2)<<qdel<<endl; else if(delt>0) { cout<<fixed<<setprecision(2)<<qdel+delta<<endl; cout<<fixed<<setprecision(2)<<qdel-delta<<endl; } else { cout<<"no real roots"; } return 0; }