游客 Signup | Login
中文 | En

3153 - 习题2-4-8 一元二次方程求根

求方程式ax2+bx+c=0的根。

Input

三个用空格隔开的整数a、b、c,分别表示一元二次方程的系数,并保证a不为0。

Output

方程式ax2+bx+c=0的根,若有两个不同的实根,则输出这两个实根,用空格隔开;若有一个实根,请直接输出;若没有实根,请输出“no answer”(请注意不需要输出引号)。所有的实数输出请使用C语言的默认舍入方式保留4位小数,注意行尾输出换行。

Examples

Input

8 -25 4

Output

0.1692 2.9558

Solution C

#include<stdio.h>
#include<math.h>
int main()
{
	int a,b,c;
	float r1,r2,delt;
	scanf("%d%d%d",&a,&b,&c);
	if(a!=0)
	{
	delt=b*b-4*a*c;
	if(delt>=0)
	{
	r1=(-b+sqrt(delt))/(2*a);
	r2=(-b-sqrt(delt))/(2*a);
	if(r1==r2) printf("%.4f\n",r1);
	if(r1!=r2) printf("%.4f %.4f\n",r2,r1);
	}
	if(delt<0) printf("no answer\n");
    }
	return 0;
}

Solution C++

#include<stdio.h>
#include<math.h>
int main()
{
	int a,b,c;
	float m,n,t;
	scanf("%d %d %d",&a,&b,&c);
	t=b*b-4*a*c;
	if(t>0)
	{
		m=(-b+sqrt(t))/(2*a);
		n=(-b-sqrt(t))/(2*a);
		printf("%.4f %.4f",n,m);
	}
	if(t=0)
	{
		m=(-b+sqrt(t))/(2*a);
		printf("%.4f\n",m);	
	}
	if(t<0)
	{
		printf("no answer");
	}
	return 0;	
}
Time Limit 1 second
Memory Limit 12 MB
Discuss Stats
上一题 下一题