酷代码 AI
菜单

用pascal读入 的值, 解一元二次方程 ,也就是求出 的值。 提示:可以用一元二次方程的根的判别式 来求方程的解; 令 如果 , 存在两个不同的解,分别为: , ; 如果 , 存在一个解: ; 如果 , 无解。 输入 读入三个浮点数分别为 . 输出 如果存在两个解,按照下面的格式输出: x1=? x2=? 如果存在一个解,按照下面的格式输出: x1=? 如果不存在解,输出: "No answer" 结果保留两位小数. 样例输入 复制 1 -4 3 样例输出 复制 x1=1.00 x2=3.00

```pascal program QuadraticEquation; uses SysUtils; var a, b, c, delta, x1, x2: real; begin // 读入 a, b, c 的值 readln(a, b, c); // 计算判别式 delta delta := b * b - 4 * a * c; if delta > 0 then begin // 存在两个不同的解 x1 := (-b + Sqrt(delta)) / (2 * a); x2 := (-b - Sqrt(delta)) / (2 * a); Write('x1=', FloatToStrF(x1, ffFixed, 15, 2), ' x2=', FloatToStrF(x2, ffFixed, 15, 2)); end else if delta = 0 then begin // 存在一个解 x1 := -b / (2 * a); Write('x1=', FloatToStrF(x1, ffFixed, 15, 2)); end else begin // 无解 Write('No answer'); end; end. ``` 代码解释: 1. 变量声明:定义了 `a`, `b`, `c` 用于存储输入的系数,`delta` 用于存储判别式的值,`x1`, `x2` 用于存储方程的解,这些变量均为 `real` 类型(Pascal 中表示浮点数)。 2. 输入读取:使用 `readln` 函数从标准输入读取三个浮点数,分别赋值给 `a`, `b`, `c`。 3. 判别式计算:根据公式 `delta := b * b - 4 * a * c` 计算判别式的值。 4. 根据判别式的值进行判断: - 如果 `delta > 0`,说明方程有两个不同的解,使用求根公式计算 `x1` 和 `x2`,并使用 `FloatToStrF` 函数将结果转换为保留两位小数的字符串,按照指定格式输出。 - 如果 `delta = 0`,说明方程有一个解,使用求根公式计算 `x1`,同样使用 `FloatToStrF` 函数将结果转换为保留两位小数的字符串,按照指定格式输出。 - 如果 `delta < 0`,说明方程无解,输出 `"No answer"`。 复杂度分析: - 时间复杂度:$O(1)$,因为只进行了常数级的计算。 - 空间复杂度:$O(1)$,只使用了常数级的额外空间。 [2025-12-10 17:25:40 | AI问答 | 614点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多