列表

详情


2118. 建立方程

表: Terms

+-------------+------+
| Column Name | Type |
+-------------+------+
| power       | int  |
| factor      | int  |
+-------------+------+
power 是该表具有唯一值的列。
该表的每一行包含关于方程的一项的信息。
power 是范围为 [0, 100] 的整数。
factor 是范围为 [-100,100] 的整数,且不能为零。

 

你有一个非常强大的程序,可以解决世界上任何单变量的方程。传递给程序的方程必须格式化如下:

编写一个解决方案来构建方程。

结果格式如下所示。

 

示例 1:

输入: 
Terms 表:
+-------+--------+
| power | factor |
+-------+--------+
| 2     | 1      |
| 1     | -4     |
| 0     | 2      |
+-------+--------+
输出: 
+--------------+
| equation     |
+--------------+
| +1X^2-4X+2=0 |
+--------------+

示例 2:

输入: 
Terms 表:
+-------+--------+
| power | factor |
+-------+--------+
| 4     | -4     |
| 2     | 1      |
| 1     | -1     |
+-------+--------+
输出: 
+-----------------+
| equation        |
+-----------------+
| -4X^4+1X^2-1X=0 |
+-----------------+

 

扩展: 如果幂函数不是主键,但每个幂函数在答案中都是唯一的,那么解决方案中需要改变什么?

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
# Write your MySQL query statement below

mysql 解法, 执行用时: 396 ms, 内存消耗: 0 B, 提交时间: 2023-10-15 23:03:34

# Write your MySQL query statement below
with t as (
    select power
        ,case 
        when power = 0 then if(factor>0,concat('+',factor),factor)
        when power = 1 then if(factor>0,concat('+',factor,'X'),concat(factor,'X'))
        else if(factor>0,concat('+',factor,'X','^',power),concat(factor,'X','^',power)) end term
    from Terms
    )
select concat(group_concat(term order by power desc separator ''),'=0') equation 
from t

mysql 解法, 执行用时: 295 ms, 内存消耗: 0 B, 提交时间: 2023-10-15 23:03:23

select concat(group_concat(term order by power desc SEPARATOR ''), '=0') as equation
from
    (select power,
        concat(if(factor>0,'+',''), factor, case power when 1 then 'X' when 0 then '' else concat('X^',power) end) as term
    from Terms)a

上一题