计算多项式的导函数

Posted 鄉勇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算多项式的导函数相关的知识,希望对你有一定的参考价值。

计算多项式的导函数

总时间限制: 
1000ms
 
内存限制: 
65536kB
描述

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

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

(2)、(C*x^n)‘ = C*n*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(x^m)+Cm-1(x^(m-1))+…+C0(Cm!=0)那么输出Cm…C0
(3) 相邻整数之间有单个空格。
样例输入
0
10
2 3 2 1
3 10 0 1 2
样例输出
0
6 2
30 0 1

代碼實現:

 

 1 #include<cstdio>
 2 int n,a;
 3 int main(){
 4     scanf("%d",&n);
 5     if(!n) printf("0");
 6     n++;
 7     while(n--){
 8         scanf("%d",&a);
 9         if(n) printf("%d ",a*n);
10     }
11     printf("\n");
12     return 0;
13 }

題目樣例與輸入輸出描述不符,已更正。

以上是关于计算多项式的导函数的主要内容,如果未能解决你的问题,请参考以下文章

使用从循环内的代码片段中提取的函数避免代码冗余/计算开销

MATLAB中计算函数运行时间的方法

如何在matlab中展开多项式

算法复杂性分界函数—多项式

为啥兀/2之类的角度的导函数为0?

多项式函数插值:计算基本理论