您的位置:首页 > 编程语言 > Java开发

1010. 一元多项式求导 (25)-浙大PAT乙级真题java实现

2017-12-21 09:33 441 查看
1010. 一元多项式求导 (25)

设计函数求一元多项式的导数。(注:x^n(n为整数)的一阶导数为n*x^(n-1)。)

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

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

注意:记得考虑没有输入的情况。以及,输入的只是常数项的情况。这个时候是要输出”0 0″的。





//Java代码实现

import java.util.ArrayList;

import java.util.Scanner;

public class Main {

  public void polynomeDerivative(String str) {

    ArrayList<Integer>alist = new ArrayList<Integer>();

    String[] polyS = str.split("\\s+");

    int[] poly = new int[polyS.length];

    for (int i = 0; i < polyS.length; i++) {

      poly[i] = Integer.parseInt(polyS[i]);

    }

    for (int i = 0; i < poly.length; i = i + 2) {

      if (poly[i] == 0) {

        alist.add(0);

        alist.add(0);

      } else if (poly[i + 1] == 0 && poly[i] != 0) {

      } else if(poly[i + 1] != 0 && poly[i] != 0){

        alist.add(poly[i] * poly[i + 1]);

        alist.add(poly[i + 1]-1);

      }

    }

    if(alist.isEmpty()){            

            System.out.println("0 0");  

        }else{  

            for(int i=0 ;i<alist.size() ;i++){  

                System.out.print(alist.get(i));  

                if(i!=alist.size()-1){    

                    System.out.print(" ");  

                }  

            }  

            System.out.println();  

        }

 
4000
}

  public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);

    String str = sc.nextLine();

    Main M = new Main();

    M.polynomeDerivative(str);

    sc.close();

  }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: