2200 - 求方程的解

通过次数

0

提交次数

0

时间限制 : 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;
}