NOI的1.5.38计算多项式的导函数

描述
计算多项式的导函数是一件非常容易的任务。给定一个函数f(x),我们用f’(x)来表示其导函数。我们用x^n来表示x的n次幂。为了计算多项式的导函数,你必须知道三条规则:

(1)、©’ = 0 如果C是常量

(2)、(Cx^n)’ = Cn*x^(n-1) 如果n >= 1且C是常量

(3)、(f1(x)+f2(2))’ = f1’(x)+f2’(x)

容易证明,多项式的导函数也是多项式。

现在,请你编写一个程序,给定一个不包含负系数且已合并好同幂次项的多项式f(x),计算出它的导函数。

输入
输入有两行。
第一行是一个整数n(0 <= n <= 100)表明多项式的最高次幂为n。
第二行包含n+1个非负整数,Cn ,Cn-1 ,Cn-2 ,Cn-3 ,Cn-4 ,… ,C1,C0(0 <= Ci <= 1000)且Cn != 0。Ci是幂次为i的项的系数。
输出
在一行内输出f’(x)的结果。
(1) 如果g(x) = 0那么直接输出0
(2) 如果g(x)形如Cm(xm)+Cm-1(x(m-1))+…+C0(Cm!=0)那么输出Cm…C0
(3) 相邻整数之间有单个空格。
样例输入
3
0
10
2
3 2 1
3
10 0 1 2
样例输出
0
6 2
30 0 1

题目误解:

样例输出和样例输入只是将有三组数据,主要是以题目的输入输出为主,输入只有两行,不要被样例给误解了题目。

解法:

import java.util.Scanner;

public class Main{
public static void main(String[] args) {
	Scanner in = new Scanner(System.in);
	int n;
	n=in.nextInt();
	int c [] =new int [n+1];
	int e []=new int[n+1];//e表示求导之后的系数值
	for(int i=n;i>=0;i--){
		c[i]=in.nextInt();
		e[i]=c[i]*i;
	}
	for(int i=n;i>=0;i--){
	if(n==0) {
		System.out.print(0);
	}
	else {
	if(i>0) {
		System.out.print(e[i]+" ");
				}
			}
		}
	}
}
发布了16 篇原创文章 · 获赞 17 · 访问量 493

猜你喜欢

转载自blog.csdn.net/weixin_45455503/article/details/104216388