欲解此题,首先要明白题目的意思,我们要用代码实现一元多项式的规范格式,首先,我们用一个数组接收多项式的系数,用数组的索引值代表多项式的幂次方。接下来我们将一个多项式拆分成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);
}
}
}
}
}