输入格式
输入共有 2 行
第一行 1 个整数,n,表示一元多项式的次数。
第二行有 n+1 个整数,其中第 i 个整数表示第 n−i+1 次项的系数,每两个整数之间用空格隔开。
输出格式
输出共 1 行,按题目所述格式输出多项式。
代码
import java.util.Scanner;
public class Polynomial {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] a = new int[n + 1];
// 读取输入
for (int i = 0; i <= n; i++) {
a[i] = scanner.nextInt();
}
// 处理最高次项 (x^n 到 x^2)
for (int i = 0; i < n - 1; i++) {
if (a[i] > 0 && i != 0)
System.out.print("+");
if (a[i] != 0 && a[i] != 1 && a[i] != -1) {
System.out.print(a[i] + "x^" + (n - i));
}
if (a[i] == 1) {
System.out.print("x^" + (n - i));
}
if (a[i] == -1) {
System.out.print("-x^" + (n - i));
}
}
// 处理 x^1 的项
for (int i = n - 1; i < n; i++) {
if (a[i] > 0 && i != 0)
System.out.print("+");
if (a[i] != 0 && a[i] != 1 && a[i] != -1) {
System.out.print(a[i] + "x");
}
if (a[i] == 1) {
System.out.print("x");
}
if (a[i] == -1) {
System.out.print("-x");
}
}
// 处理常数项
if (a[n] > 0) {
System.out.print("+" + a[n]);
} else if (a[n] != 0) {
System.out.print(a[n]);
}
}
}