PAT:一元多项式求导

 设计函数求一元多项式的导数。

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

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

输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0

 ---------------------------------------------------------------------------------------------------------

01  import java.io.BufferedReader ;
02  import java.io.IOException ;
03  import java.io.InputStreamReader ;
04  import java.util.ArrayList ;
05  import java.util.List ;
06 
07 
08 
09  public class Test {
10      public static void main ( String [] args ) {
11          // TODO Auto-generated method stub
12     
13          String dataStr = null ;
14          int [] numArr = null ;
15          List <</SPAN>CoefficientStruct> mList = new ArrayList<</SPAN>CoefficientStruct>();
16         //读取数据
17         BufferedReader strin = new BufferedReader(new InputStreamReader(System.in));
18         try {
19             dataStr = strin.readLine();
20         } catch (IOException e) {
21             // TODO Auto-generated catch block
22             e.printStackTrace();
23         }
24         dataStr = dataStr.replaceAll(" {2,}", " ");//删除字符串中多余的空格,给的数据点中有多个空格的情况
25         String[] numStrArr = dataStr.split(" ");//用空格分割,返回字符串数组
26         //转换成int数组
27         numArr = new int[numStrArr.length];
28         for (int i = 0; i <</SPAN> numStrArr.length; i++) {
29             if(numStrArr[i] != null)numArr[i] = Integer.parseInt(numStrArr[i]);
30         }
31         //装入链表
32         for (int i = 0; i <</SPAN> numStrArr.length; i = i+2) {
33             CoefficientStruct coStruct = new CoefficientStruct();
34             coStruct.ai = numArr[i];
35             coStruct.ei = numArr[i+1];
36             mList.add(coStruct);
37         }
38         //处理数据开始
39         for (int i = 0; i <</SPAN> mList.size(); i++) {
40             CoefficientStruct temp = mList.get(i);
41             if(temp.ei == 0){//常数项求导为0
42                 mList.remove(i);
43                 continue;
44             }
45             temp.ai = temp.ai *temp.ei;
46             temp.ei = temp.ei-1;
47             mList.set(i, temp);
48         }
49         
50         //处理完毕,现在输出
51         
52         testStruct(mList);//输出前n-1项数据        
53         if (mList.size() >0) {
54             CoefficientStruct temp = mList.get(mList.size()-1);
55             System.out.print(temp.ai + " ");
56             System.out.print(temp.ei);
57             
58         }else {
59             System.out.print(0 + " ");
60             System.out.print(0);
61         }
62         
63         
64             
65         
66         
67     }
68     
69     static void testStruct(List<</SPAN>CoefficientStruct> ls){
70         for (int i = 0; i <</SPAN> ls.size()-1; i++) {            
71             System.out.print(ls.get(i).ai + " ");
72             System.out.print(ls.get(i).ei + " ");
73         }    
74     }
75     
76     static class CoefficientStruct{
77         int ai;        
78         int ei;
79         public CoefficientStruct() {
80             // TODO Auto-generated constructor stub
81             ai = 0;
82             ei = 0;
83         }
84     }
85     
86 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值