A1063. 求导函数的值

问题描述

  相信大家对微积分都有很深的印象吧,这次的任务就是对一个多项式  计算出它在x=x0点处的导函数值。
输入格式
  输入共三行:
  第一行输入该多项式的最高次数n;
  第二行输入x0 ;
  第三行从最低位开始依次输入ai,表示xi的系数,如当n=2时,a=[0,1,2]就代表2x^2+x 这个多项式。
  n<=100, 0<=ai<=9999, -9999<=x0<=9999
输出格式
  输出共一行:
  第一行输出导函数在x=x0点处的导函数值,考虑到该值可能十分巨大,只需要输出最后mod 9999的结果即可。
样例输入
2
0
0 1 2

样例输出

1
package www.tsinsen.com;

import java.util.Scanner;

public class A1063 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan=new Scanner(System.in);
        int n=scan.nextInt();
        int x0=scan.nextInt();
        int[] arr=new int[n+1];
        for(int i=0;i<=n;i++){
            arr[i]=scan.nextInt();
        }
        int sum=0;
        for(int i=1;i<=n;i++){
            //到处都是坑,这个也可能会超过int取值范围
            int sum1=arr[i]*i%9999;;//求该位的次幂和  //人生处处都是坑
            for(int j=0;j<i-1;j++){
                sum1*=(x0+9999)%9999;  //i-1次方,注意x0可能是负数,负数取模后结果会出现错误,因此先加9999再取模
                sum1%=9999;
            }
            sum=(sum+sum1)%9999;
        }
        System.out.println(sum);
    }

}

 

 
posted @ 2018-03-08 21:11  henu小白  阅读(380)  评论(0编辑  收藏  举报