设计函数求一元多项式的导数。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