跳到主要内容

Kotlin 程序:找出二次方程的所有根

二次方程的标准形式为:

ax2 + bx + c = 0,其中
a,b和c是实数且
a ≠ 0

术语 b2-4ac 称为二次方程的判别式。判别式告诉我们根的性质。

  • 如果判别式大于0,则根是实数且不相同。
  • 如果判别式等于0,则根是实数且相同。
  • 如果判别式小于0,则根是复数且不相同。

示例:Kotlin程序查找二次方程的根

fun main(args: Array<String>) {

val a = 2.3
val b = 4
val c = 5.6
val root1: Double
val root2: Double
val output: String

val determinant = b * b - 4.0 * a * c

// 实数且不同根的条件
if (determinant > 0) {
root1 = (-b + Math.sqrt(determinant)) / (2 * a)
root2 = (-b - Math.sqrt(determinant)) / (2 * a)

output = "root1 = %.2f and root2 = %.2f".format(root1, root2)
}
// 实数且相同根的条件
else if (determinant == 0.0) {
root2 = -b / (2 * a)
root1 = root2

output = "root1 = root2 = %.2f;".format(root1)
}
// 如果根不是实数
else {
val realPart = -b / (2 * a)
val imaginaryPart = Math.sqrt(-determinant) / (2 * a)

output = "root1 = %.2f+%.2fi and root2 = %.2f-%.2fi".format(realPart, imaginaryPart, realPart, imaginaryPart)
}

println(output)
}

运行程序时,输出结果为:

root1 = -0.87+1.30i and root2 = -0.87-1.30i

在上述程序中,将系数 abc 分别设置为2.3、4 和5.6。然后,计算 判别式,即 b2 - 4ac

根据判别式的值,根据上述公式计算根。请注意,我们使用库函数 Math.sqrt() 计算数字的平方根。

要打印的输出被存储在字符串变量 output 中,使用Kotlin的标准库函数 format() 进行格式化。然后使用 println() 打印输出。

以下是上述程序的等效Java代码:Java程序:查找二次方程的所有根