A1063. 求导函数的值
问题描述
相信大家对微积分都有很深的印象吧,这次的任务就是对一个多项式 计算出它在x=x0点处的导函数值。
输入格式
输入共三行:
第一行输入该多项式的最高次数n;
第二行输入x0 ;
第三行从最低位开始依次输入ai,表示xi的系数,如当n=2时,a=[0,1,2]就代表2x^2+x 这个多项式。
n<=100, 0<=ai<=9999, -9999<=x0<=9999
第一行输入该多项式的最高次数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的结果即可。
第一行输出导函数在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); } }