1 条题解

  • 0
    @ 2025-4-7 21:28:46

    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
    上传者