题解 | #伟大奋斗#
[NOIP2009]多项式输出
https://ac.nowcoder.com/acm/contest/19305/1054
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n + 1];
// 读取输入的系数
for (int i = 0; i <= n; i++) {
arr[i] = sc.nextInt();
}
StringBuilder sb = new StringBuilder();
// 构建多项式字符串
for (int i = 0; i <= n; i++) {
if (arr[i] == 0) continue; // 跳过系数为0的项
// 处理符号
if (i > 0 && arr[i] > 0) {
sb.append("+");
} else if (arr[i] < 0) {
sb.append("-");
}
// 处理系数
if (Math.abs(arr[i]) != 1 || i == n) { // 最高次项系数为1时不输出系数
sb.append(Math.abs(arr[i]));
}
// 处理变量部分
if (i < n) { // 最后一项没有变量部分
sb.append("x");
if (n - i > 1) { // 指数大于1时输出指数
sb.append("^").append(n - i);
}
}
}
// 输出结果
System.out.println(sb.toString());
sc.close();
}
}