pta 乙级 1010 一元多项式求导 java

在这里插入图片描述
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。

输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0。

输入样例:

3 4 -5 2 6 1 -2 0

输出样例:

12 3 -10 1 6 0

//1009
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
// 输入多项式,建立系数数组num1和指数数组num2
String[] input=in.nextLine().split("\s+");
int[] num1=new int[input.length/2];
int[] num2=new int[input.length/2];
String outcome="";
int n;
// 考虑输入为0
if(input[0].equals(“0”)&&input.length==1){
outcome="";
}
for(int i=0;i<input.length;i+=2){
n=i/2;
num1[n]=Integer.parseInt(input[i]);
num2[n]=Integer.parseInt(input[i+1]);
}
// 求导
for(int i=0;i<num1.length;i++){
if(num2[i]!=0){
num1[i]*=num2[i];
num2[i]–;
}
else{
num1[i]=0;
}
}
for(int i=0;i<num1.length;i++){
if(i!=0){
if(num1[i]!=0){
outcome+=" “+num1[i]+” “+num2[i];
}
}
else{
if(num1[i]!=0){
outcome+=num1[i]+” “+num2[i];
}
}
}
// 考虑输入为零多项式情况,避免无输出
if(outcome.equals(”")==true){
outcome=“0 0”;
}
System.out.print(outcome);
}
}

两个坑。输入为“0 0”或“1 0”时表示零多项式,输出不能为空也要是零多项式。输入数字之间不止一个空格,因此用正则表达式"\s+",\转义成\ ,\与s组成\s,表示空格,+表示至少1个空格。

发布了8 篇原创文章 · 获赞 0 · 访问量 187

猜你喜欢

转载自blog.csdn.net/weixin_44211856/article/details/104095203