输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
详解:这道题入手就踩了好多坑,想问题一定要详细啊!
思路:
1.空格的分割可以是多个 正则表达也就是("\s+")
2.当指数和系数都是0时,输出0 0
3,正常输出的话,输出a*b+" "+b-1
4.当指数为0,系数不为0时,输出空。因为存在-2 0的情况,样例没有输出
5.当总输出结果为空时,输出0 0
public class Pta_1010 {
public static void main(String[] args) {
//a*b+" "+b-1
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
String[] split = str.split("\\s+");//1.空格可以是多个
List<Integer> list = new ArrayList<Integer>();
List<Integer> ress = new ArrayList<Integer>();
for (int i = 0; i < split.length; i++) {
list.add(Integer.valueOf(split[i]));
}
for (int i = 0; i < list.size() - 1; i += 2) {
int a = list.get(i);
int b = list.get(i + 1);
if (a == 0 && b == 0) {//3.指数、系数都为零,输出0 0
ress.add(0);
ress.add(0);
} else if (a != 0 && b == 0) {//4.系数不为零,指数为零 输出为空""
} else {//2.正常输出是a*b+" "+b-1
ress.add(a * b);
ress.add(b - 1);
}
}
if (ress.isEmpty()) {//5.当输出为空 输出0 0
System.out.print("0 0");
} else {
for (int i = 0; i < ress.size(); i++) {
System.out.print(ress.get(i));
if (i != ress.size() - 1) {
System.out.print(" ");//控制空格
}
}
}
}
}