【scala 小试牛刀1】scala vs python 解一元二次方程

scala小试内容:

  • 1、数学库Math的使用(求根公式)
  • 2、scala函数定义和使用(类似C语言,goland 语言)
  • 3、字符串格式化输出($用法)
  • 4、程序运行时间end-start (纳秒转换为 秒 )
  • 5、条件判断的使用 if if else else
  • 6、保留小数点后面几位的用法( a.formatted(“%.4f”))

一元二次方程ax^2+bx+c=0中,
一元二次方程求根公式:两根

x1,x2= [-b±√(b^2-4ac)]/2a

韦达定理:两根x1,x2有如下

x1+x2=-b/a
x1*x2=c/a

python2.7版本:

# encoding: utf-8
from __future__ import division
import sys
reload(sys)
sys.setdefaultencoding('utf-8')



import math
def quadratic(a,b,c):
    m=b*b-4*a*c
    # print m

    if m>0:
        print "该方程有两个解:"
        x1=(-b-math.sqrt(m))/(a*2)
        x2=(-b+math.sqrt(m))/(a*2)
        print "x1=%s,x2=%s " %(x1,x2)
    elif m==0:
        print "该方程只有一个解"
        x1 = (-b) / a * 2
        print "x=%s" %x1

    else:
        print  "该方程没有解"


if __name__ == '__main__':
    a=1;b=4;c=-5
    quadratic(a,b,c)

scala版本:

package DataStructureAndAlgorithm

/**
  * Created by Administrator on 2017/12/23.
  */
object Test2LinearEquation {
/**
* 只含有一个未知数(一元),并且未知数项的最高次数是2(二次)的整式方程叫做一元二次方程。标准形式为:ax²+bx+c=0(a≠0)。
* 一元二次方程ax^2+bx+c=0中,一元二次方程求根公式:两根x1,x2= [-b±√(b^2-4ac)]/2a
*韦达定理:两根x1,x2有如下关系:x1+x2=-b/a,x1*x2=c/a
 */

  def quadratic(a: Int, b: Int, c: Int):Unit = {
    val m = b * b - 4 * a * c
    println(m)

    if(m>0){
      println("该方程有两个解:")
      val  x1=(-b-math.sqrt(m))/(a*2)

      val  x2=(-b+math.sqrt(m))/(a*2)

      println(s"x1=$x1,x2=$x2")

    }
    else if(m==0) {
      println("该方程只有一个解:")
      val  x3=(-b)/(a*2)
      println(s"x=$x3")

    }else{
      println("改方程没有解")
    }


  }

  def main(args: Array[String]) {
    val start = System.nanoTime()

//    赋值变量
    val a=1
    val b=(-1)
    val c=(-30)

//    从控制台输入:
//    val a=Console.readLine()
//    println(a)


    quadratic(a,b,c)
    val end = System.nanoTime()
    println("程序运行时间:"+((end - start)/1000000000d).formatted("%.4f")+"s")
  }
}





运行结果:

121
该方程有两个解:
x1=-5.0,x2=6.0
程序运行时间:0.1373s

Process finished with exit code 0
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东华果汁哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值