总时间限制: 
1000ms

内存限制: 
65536kB
描述

利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4*a*c))/(2*a)求一元二次方程ax2+ bx + c =0的根,其中a不等于0。

输入
输入一行,包含三个浮点数a, b, c(它们之间以一个空格分开),分别表示方程ax2 + bx + c =0的系数。
输出
输出一行,表示方程的解。
若b2 = 4 * a * c,则两个实根相等,则输出形式为:x1=x2=...。
若b2 > 4 * a * c,则两个实根不等,则输出形式为:x1=...;x2 = ...,其中x1>x2。
若b2 < 4 * a * c,则有两个虚根,则输出:x1=实部+虚部i; x2=实部-虚部i,即x1的虚部系数大于等于x2的虚部系数,实部为0时不可省略。实部 = -b / (2*a), 虚部 = sqrt(4*a*c-b*b) / (2*a)

所有实数部分要求精确到小数点后5位,数字、符号之间没有空格。
样例输入
  1. 样例输入1
  2. 1.0 2.0 8.0
  3.  
  4. 样例输入2
  5. 1 0 1
样例输出
  1. 样例输出1
  2. x1=-1.00000+2.64575i;x2=-1.00000-2.64575i
  3.  
  4. 样例输出2
  5. x1=0.00000+1.00000i;x2=0.00000-1.00000i
  1. 1 #include<iostream>
  2. 2 #include<cmath>
  3. 3 #include<iomanip>
  4. 4 #include <cstdio>
  5. 5 using namespace std;
  6. 6 int main()
  7. 7 {
  8. 8 double a,b,c;
  9. 9 cin>>a>>b>>c;
  10. 10 double d=b*b-4*a*c;
  11. 11 double der=sqrt(d);
  12. 12 double x1=(-b+der)/(2*a);
  13. 13 double x2=(-b-der)/(2*a);
  14. 14 if(d==0)
  15. 15 {
  16. 16 cout<<setprecision(5)<<fixed<<"x1=x2="<<x1;
  17. 17 }
  18. 18 else if (d>0)
  19. 19 {
  20. 20 if (a>0)
  21. 21 {
  22. 22 cout << setprecision(5) << fixed << "x1=" << x1 << ";" << "x2=" << x2;
  23. 23 }
  24. 24 else
  25. 25 {
  26. 26 cout << setprecision(5) << fixed << "x2=" << x2 << ";" << "x1=" << x1;
  27. 27 }
  28. 28 }
  29. 29 else
  30. 30 {
  31. 31 double m, n;
  32. 32 double esp = pow(10, -7);
  33. 33 m = -b / (2 * a) + esp;
  34. 34 n = sqrt(-d) / (2 * a);
  35. 35 printf("x1=%.5lf+%.5lfi;x2=%.5lf-%.5lfi\n", m, n, m, n);
  36. 36 /*der = sqrt(-d);
  37. 37 double x3 = -b / 2.0 / a;
  38. 38 double x4 = der / 2.0 / a;
  39. 39 if (b==0)
  40. 40 {
  41. 41 x3 = 0;
  42. 42 }
  43. 43 if (a>0)
  44. 44 {
  45. 45 cout << setprecision(5) << fixed << "x1=" << x3 << "+" << x4 << "i" << ";" << "x2=" << x3 << "-" << x4 << "i" << endl;
  46. 46 }
  47. 47 else
  48. 48 {
  49. 49 cout<<setprecision(5)<< fixed<<"x1="<<x3<<"+"<<-x4<<"i"<<";"<<"x2="<<x3<<x4<<"i"<<endl;
  50. 50 }*/
  51. 51
  52. 52
  53. 53 }
  54. 54
  55. 55 return 0;
  56. 56 }

C++分支结构,求一元二次方程的根的更多相关文章

  1. OpenJudge计算概论-求一元二次方程的根【含复数根的计算、浮点数与0的大小比较】

    /*====================================================================== 求一元二次方程的根 总时间限制: 1000ms 内存限 ...

  2. 计算概论(A)/基础编程练习1(8题)/4:求一元二次方程的根

    #include<stdio.h> #include<math.h> int main() { // 待解方程数目 int n; scanf("%d", & ...

  3. 基于linux或windows的c/s的循环服务器求一元二次方程的根

    在linux和windows上实现 c/s模式 socket循环服务器求解一元二次方程的根 ax^2+bx+c=0 根据上式,客户端发送a,b,c给服务器,返回求解的根 暂未考虑非法数据等问题 lin ...

  4. Openjudge-计算概论(A)-求一元二次方程的根

    描述: 利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4*a*c))/(2*a)求一元二次方程ax2 + bx + c =0的根 ...

  5. 实验3-1 求一元二次方程的根 (20 分) 《C语言程序设计实验与习题指导(第3版)》

    本题目要求一元二次方程的根,结果保留2位小数. 输入格式: 输入在一行中给出3个浮点系数a.b.c,中间用空格分开. 输出格式: 根据系数情况,输出不同结果: 1)如果方程有两个不相等的实数根,则每行 ...

  6. 求一元二次方程的根【double型的0输出%.2lf为-0.00】

    #include <bits/stdc++.h> using namespace std; #define LL long long #define eps 1e-6 int main() ...

  7. ocrosoft 1015 习题1.22 求一元二次方程a*x^2 + b*x + c = 0的根

    http://acm.ocrosoft.com/problem.php?id=1015 题目描述 求一元二次方程a*x2 + b*x + c = 0的根.系数a.b.c为浮点数,其值在运行时由键盘输入 ...

  8. 用c#求一元二次方程

    题目:编一个程序,输入a .b.c 的值,求出一元二次方程a*x*x+b*x+c=0的二个实数根. 我的思路: 我们都知道数学中求一元二次方程有很多方法:直接开方法.配方法.公式法.分解因式法等等,在 ...

  9. 【Python实践-1】求一元二次方程的两个解

    知识点: import sys, sys模块包含了与Python解释器和它的环境有关的函数. “sys”是“system”的缩写.sys.exit() 中途退出程序, (注:0是正常退出,其他为不正常 ...

随机推荐

  1. leo101

    tags: 贪心 date: 2019-4-4 jag2017autumnJ Farm Village 题面 题目链接 翻译 数轴上有 n 个村庄,每个村庄可以生产两个单位的粮食.在每个村庄生产一单位 ...

  2. Java的Arrays.sort()方法到底用的什么排序算法

    暂时网上看过很多JDK8中Arrays.sort的底层原理,有些说是插入排序,有些说是归并排序,也有说大于域值用计数排序法,否则就使用插入排序...其实不全对.让我们分析个究竟: 1 // Use Q ...

  3. 转载-Java匿名内部类

    作者: chenssy 出处: http://www.cnblogs.com/chenssy/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接, ...

  4. 使用docker 部署codis

    使用docker 部署codis 原文地址:https://www.jianshu.com/p/85e72ae6fec3 codis的架构图 1.zookeeeper,用于存放统一配置信息和集群状态 ...

  5. SQL SERVER数据库常用命令

    创建数据库: 命令:create database 数据库名: 示例:create database student: 删除数据库: 命令:drop database 数据库名: 示例:drop da ...

  6. 【SpringCloud】03.微服务的设计原则

    微服务的设计原则: 一.AKF拆分原则 业界对于可扩展的系统架构设计有一个朴素的理念:通过加机器就可以解决容量和可用性问题(如果一台不行就两台). Y轴(功能)--关注应用中功能划分,基于不同的业务拆 ...

  7. 我叫Mongo,干了「查询终结篇」,值得您拥有

    这是mongo第三篇"查终结篇",后续会连续更新5篇 mongodb的文章总结上会有一系列的文章,顺序是先学会怎么用,在学会怎么用好,戒急戒躁,循序渐进,跟着我一起来探索交流. 通 ...

  8. laravel 多表字段关联查询

    public function items() { return $this->belongsToMany('App\Model\Cz\CzCourse', 'cz_picture_course ...

  9. KepServer与S7-1200PLC之间的OPC通信配置

    对于学习上位机开发,有一种通信方式是必须要了解的,那就是OPC是OLE for Process Control的简称,然而随着技术的不断发展,人们开始对它有了新的定义,比如Open Platform ...

  10. 用system v消息队列实现回射客户/服务器程序

    客户端程序 #include<unistd.h> #include<sys/types.h> #include<sys/socket.h> #include< ...