前言:在网上看到不少解一元二次方程的小程序,在使用时总得出一大堆小数,感觉很不爽,遂自己重新写了一遍。

首先,先回忆一下一元二次方程的求根公式:

  1. 分别读取二次项、一次项和常数项系数并且求出delta

  1. 无解情况

此时同时输出delta的值,小于0,无解。

2.只有一个根的情况

当delta等于0,只有一个实数根,没什么好讲。

3.两个不相等实根的情况

重点就是这个部分。

  1. 为了避免一大堆小数的问题,分开sqrt(delta)是整数和非整数来。(如果是整数,则直接运算,如果不是整数,则保留根号)

    (1)sqrt(delta)是整数时

现在涉及一个问题就是如何判断整数

此处为了避免互相干扰,用了两个变量,sqr用于判断是否为整数,如果是整数,则用sqr1计算

如何判断是否为整数呢?这里可以利用int形和double形的性质。采用判断(int)sqr和 (int)(sqr + 0.9999999)的大小来判断sqr是不是整数。[double形一般精确到小数点后6 位,所以这里用了7个9]。然后强制转换成int型,如果为整数,(int)(sqr + 0.9999999)不会进位,x=y。不是整数,反之。

然后如果为整数,先计算sqrt(delta)后代入计算。

(2)sqrt(delta)不是整数时

对,保留根号!

后记:写这一段小程序最初是为繁多的坑爹的解方程数学题所恼,想快点完成作业~~于是在那个月黑风高的晚上写完作业后顺便把这篇文章写了。

最新文章

  1. SQL 计算两个地理坐标相差的距离的函数
  2. Uva11538 排列组合水题
  3. android: SQLite删除数据
  4. ECSHOP不同商品分类调用不同模板
  5. JS调试必备的5个debug技巧
  6. asp.net mvc开发的社区产品相关开发文档分享
  7. 关于UITableViewCell的循环利用--面向初学者
  8. iPhone丢失后通过iccid找回流程
  9. 利用PS滤镜及图层叠加制作水墨荷花
  10. js数组、对象、正则
  11. html5 01 随记
  12. 20145237 《Java程序设计》第2周学习总结
  13. 【心得】-NO.114.面试.1 -【To HR And Interviewer】
  14. python "import this"
  15. margin auto 实现居中,与text-align:center的区别
  16. vue系列之flex经典案例
  17. Mybaits代码生成使用
  18. Db2与Oracle的区别
  19. Revit Family API 添加材质参数设置可见性
  20. js 数组的深度递归搜索

热门文章

  1. android datepicker源码
  2. CSharp Algorithm - How to traverse binary tree by breadth (Part II)
  3. (原创)speex与wav格式音频文件的互相转换
  4. 下载好一个android软件之后,怎样自动提示安装?
  5. ssh-add命令
  6. ASP.NET 开发人员应该知道的8个网站
  7. VS的一部分快捷键
  8. oracle数据库入门
  9. JQ动画事件
  10. 20160314 Request 和Response