PAT (Basic Level) Practise (中文)1010. 一元多项式求导 (25)

来源:互联网 发布:大数据主要来源于哪些 编辑:程序博客网 时间:2024/05/21 08:41

1010. 一元多项式求导 (25)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard

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

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

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

输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
//部分正确,3分
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main{  public static void main(String[] args) throws IOException {    BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));    String str=bf.readLine();    String[] arr_str=str.split(" ");    int[] arr1=new int[arr_str.length/2];    int[] arr2=new int[arr_str.length/2];    int[] arr3=new int[arr_str.length/2];    int[] arr4=new int[arr_str.length/2];    for (int i = 0,j=0; i < arr_str.length; i++) {      if (i%2==0) {        arr1[j]=Integer.parseInt(arr_str[i]);      }else {        arr2[j]=Integer.parseInt(arr_str[i]);        j++;      }    }    for (int i = 0; i < arr3.length; i++) {      arr3[i]=arr1[i]*arr2[i];      arr4[i]=arr2[i]-1;    }    StringBuffer sb=new StringBuffer();    for (int i = 0; i < arr2.length; i++) {      if (arr3[i]==0&arr4[i]!=0) {              }else {        if (arr3[i]==0&&arr4[i]==0) {          sb.append("0 0");        }        sb.append(arr3[i]+" ");        sb.append(arr4[i]+" ");              }    }    String result=sb.substring(0, sb.length()-1);    System.out.println(result);  }}
阅读全文
0 0
原创粉丝点击