A4.多项式输出
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
题目分析
本题要求按照特定格式输出多项式。给定多项式次数 n 和各项系数,需要处理以下关键点:
* 系数符号处理:首项系数为正时不显示+,为负时显示-;其他项需要显示符号
* 系数绝对值处理:系数绝对值为1且次数>0时不显示数字1
* 指数显示处理:
* 次数>1时显示为 x^次数
* 次数=1时显示为 x
* 次数=0时只显示系数
* 特殊情况处理:系数为0的项不输出
* 格式要求:开头和结尾不能有多余空格
核心思路
1. 从最高次项 n 开始遍历到常数项 0
2. 对每一项系数 a 进行判断:
* 如果系数为0,跳过该项
* 处理符号:根据是否是第一项和非零项决定是否显示符号
* 处理系数绝对值:排除绝对值为1且次数>0的情况
* 处理变量部分:根据次数决定显示 x^次数、x 或不显示
3. 注意常数项(次数为0)的特殊处理
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
代码实现(ALL AC,可放心食用)
代码详解
1. 输入处理
* 读取多项式次数 n
* 从最高次项 n 到常数项 0 依次读取系数
2. 符号处理逻辑
* 使用 first 标志位标记是否是第一个输出的项
* 第一项:负号需要显示,正号不显示
* 后续项:正负号都需要显示
3. 系数值处理
* 当次数>0且系数绝对值为1时,不显示数字1
* 常数项(i=0)即使系数为±1也要显示
4. 变量部分处理
5. 特殊情况
虽然题目保证最高次项系数不为0,但为健壮性考虑:
示例分析
示例1
输入:
处理过程:
* i=5, a=100: 第一项,正数不显示+,显示100x^5
* i=4, a=-1: 显示-,绝对值1不显示数字,显示x^4 → -x^4
* i=3, a=1: 显示+,绝对值1不显示数字,显示x^3 → +x^3
* i=2, a=-3: 显示-,绝对值3显示数字,显示x^2 → -3x^2
* i=1, a=0: 跳过
* i=0, a=10: 显示+,显示数字10 → +10
结果:100x^5-x^4+x^3-3x^2+10
示例2
输入:
处理过程:
* i=3, a=-50: 第一项,负数显示-,显示50x^3 → -50x^3
* i=2, a=0: 跳过
* i=1, a=0: 跳过
* i=0, a=1: 显示+,常数项要显示数字 → +1
结果:-50x^3+1
复杂度分析
* 时间复杂度:O(n),只需要遍历n+1个系数一次
* 空间复杂度:O(1),只使用了常数个变量
常见错误点
1. 忘记处理系数为0的情况:题目要求只输出系数不为0的项
2. 系数绝对值为1时的处理不当:当次数>0且系数绝对值为1时,不显示数字1
3. 符号处理错误:第一项系数为正时不应该显示+
4. 指数显示格式错误:
* 一次项应该显示为x而不是x^1
* 常数项不应该显示x
5. 边界情况:n=0时(只有常数项)需要正确处理
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总结
这道题主要考察字符串格式化和条件判断能力。通过分情况讨论系数的符号、绝对值和次数,按照规则拼接字符串即可。注意仔细处理每个边界情况,特别是系数为±1和次数为0或1的情况。
蒜鸟蒜鸟,睡了