欲解此题,首先要明白题目的意思,我们要用代码实现一元多项式的规范格式,首先,我们用一个数组接收多项式的系数,用数组的索引值代表多项式的幂次方。接下来我们将一个多项式拆分成a+b的形式,a是代表系数的值(包括正负号),b代表"x^"+i,也就是多项数次幂。再接下来用if语句来控制条件即可。但是,最后一个不好控制,我们可以在最后控制其值。此次解题中运用到了 str.substring(beginIndex,endIndex),这是获取子字符串的一个方法,代表截取的哪一段,但结束索引是无法取到的,如果只写一个参数,那代表截取参数之后的所有字符串。

import java.util.*; public class Main {

public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String shi="";
int n=sc.nextInt();
int count=0;
int[] s=new int[n+1];
for(int i=n;i>=0;i--) {
	s[i]=sc.nextInt();
}

for(int i=n;i>0;i--) {
	String b="x^"+i;
	String a=Integer.toString(s[i]);
	if(i==1) {
		b="x";
	}
	if(s[i]<0 && s[i]!=-1) {
		a=""+s[i];
	}
	if(s[i]<0 && s[i]==-1) {
		a="-";
	}
	if(s[i]>0 && i<n && s[i]!=1) {
		a="+"+s[i];
	}
	if(s[i]>0 && i<n && s[i]==1) {
		a="+";
	}
	if(i==n && s[i]==1) {
		a="";
	}
	if(s[i]==0) {
		count++;
		continue;
	}
	shi=shi+""+a+b;
}

if(count>=n) {
	System.out.println(s[0]);
}
else {

	if(shi.charAt(0)=='+') {
		if(s[0]>0) {
			System.out.println(shi.substring(1)+"+"+s[0]);
		}
		if(s[0]<0) {
			System.out.println(shi.substring(1)+s[0]);
		}
        
	}
	else {
		if(s[0]>0) {
			System.out.println(shi+"+"+s[0]);
		}
		if(s[0]<0) {
			System.out.println(shi+s[0]);
		}
        if(s[0]==0) {
			System.out.println(shi);
		}
	}
}



	
}

    

}