设计函数求一元多项式的导数。n(n为整数)的一阶导数为nxn−1。)
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0刚看到这道题的时候,我很天真的写了split(" "),结果总有两测试点不通过。题目中有3个坑:1.末尾不能有多余空格2.分隔数字的空格可能不止一个3.如果多项式为0多项式,输出0 0code:
import java.util.Scanner;
public class Main{//success
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
boolean flag = true;//这个flag用来判断是否为0多项式且还能判断是否for循环一次。
String s = in.nextLine();//用nextLine()方法输入下一行内容存储为字符串
in.close();//要记得关闭输入流对象in
String[] s1 = s.split("\\s+");//正则表达式"\\s+"
for(int i = 0 ; i <= s1.length - 2 ; i += 2) {
if(Integer.parseInt(s1[i + 1]) * Integer.parseInt(s1[i]) != 0) {
if(!flag) {
System.out.print(" ");
}
System.out.print(Integer.parseInt(s1[i]) * Integer.parseInt(s1[i + 1]) + " " + (Integer.parseInt(s1[i + 1]) - 1));
flag = false;
}
}
if(flag) {
System.out.print("0 0");
}
}
}
需要注意的:
//split("\\s+");以一个或多个空格分隔
来源:http://www.cnblogs.com/mirable/p/11375423.html