1 条题解
-
0
C :
#include<stdio.h> #include<math.h> int main(){ int a,b,c; int disc; double p1,p2,p3; scanf("%d %d %d",&a,&b,&c); if(a==0) printf("not a quadratic\n"); else{ disc=b*b-4*a*c; p1=-b/(2.0*a); p2=sqrt(disc)/(2.0*a); p3=sqrt(-disc)/(2.0*a); if(disc<0) printf("complex roots:%.4lf+%.4lfi %.4lf-%.4lfi\n",p1,p3,p1,p3); else if(disc==0) printf("two equal roots:%.4lf\n",-b/(2.0*a)); else if(disc>0) printf("distinct real roots:%.4lf %.4lf\n",p1+p2,p1-p2); } return 0; }
C++ :
#include <stdio.h> #include <math.h> int main() { int a, b, c, delta; double ans0, ans1, sqrt_delta, realpart, imagpart; scanf("%d %d %d", &a, &b, &c); /* 计算delta的值(b*b-4*a*c)并分类讨论 */ delta = b * b - 4 * a * c; if (delta > 0) { sqrt_delta = sqrt(delta); ans0 = (-b - sqrt_delta) / (2.0 * a); ans1 = (-b + sqrt_delta) / (2.0 * a); printf("distinct real roots:%.4f %.4f\n", ans0, ans1); } else if (delta == 0) { ans0 = (-b) / (2.0 * a); printf("two equal roots:%.4f\n", ans0); } else { realpart = -b / (2.0 * a); imagpart = sqrt(-delta) / (2.0 * a); printf("complex roots:%.4f+%.4fi %.4f-%.4fi\n", realpart, imagpart, realpart, imagpart); } return 0; }
Pascal :
var a,b,c,d:double; begin readln(a,b,c); d:=b*b-4*a*c; if( a<1e-8 ) then writeln('not a quadratic') else if( (d>0) and (d<=1e-8) ) then writeln('two equal roots:',-b/(2*a):0:4) else if(d>1e-8) then writeln( 'distinct real roots:', (-b-sqrt(d))/(2*a):0:4 ,' ', (-b+sqrt(d))/(2*a):0:4 ) else if(d<0) then writeln( 'complex roots:', (-b)/(2*a):0:4,'+',sqrt(-d)/(2*a):0:4,'i ', (-b)/(2*a):0:4,'-',sqrt(-d)/(2*a):0:4,'i' ); end.
Java :
import java.util.*; public class Main { public static void main(String args[]) { Scanner cin = new Scanner(System.in); double a,b,c; double d; double x1,x2; a=cin.nextInt(); if(a==0){ System.out.println("not a quadratic"); return; } b=cin.nextInt(); c=cin.nextInt(); d=Math.pow(b, 2)-4*a*c; if(d==0){ x1=-b/(2*a); System.out.printf("two equal roots:%.4f\n",x1); } else if(d>0){ x1=(-b+Math.sqrt(d))/(2*a); x2=(-b-Math.sqrt(d))/(2*a); System.out.printf("distinct real roots:%.4f %.4f\n",x1,x2); } else { d=-d; x1=(-b)/(2*a); x2=Math.sqrt(d)/(2*a); System.out.printf("complex roots:%.4f+%.4fi %.4f-%.4fi\n",x1,x2,x1,x2); } } }
- 1
信息
- ID
- 1257
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者