1010 一元多项式求导

2019-03-02  本文已影响0人  初见还是重逢

设计函数求一元多项式的导数。(注:x​n(n为整数)的一阶导数为nxn−1 。)

输入格式:

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

输出格式:

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

输入样例:

3 4 -5 2 6 1 -2 0

输出样例:

12 3 -10 1 6 0

思路:

定义两个数组,一个用于存放系数,一个存放指数,然后对系数乘以指数即为求导后的系数(分常数项与非常数项)

代码:

一元多项式求导

//1010  一元多项式求导
#include<iostream>
#include<vector>

using namespace std;

int main()
{
    vector<int> coefficient;//存放系数
    vector<int> index;//存放指数
    int temp;
    while (cin.peek() != '\n')//读取系数与指数
    {
        cin >> temp;
        coefficient.push_back(temp);
        cin >> temp;
        index.push_back(temp);
    }
    for (int i = 0; i < coefficient.size(); i++)
    {
        if (index[i] != 0)//指数大于1的求导
        {
            coefficient[i] *= index[i];
            index[i]--;
        }
        else//常数项求导
        {
            coefficient[i] *= index[i];
        }
    }
    cout << coefficient[0] << ' ' << index[0];
    for (int i = 1; i < coefficient.size(); i++)//输出
    {
        if (index[i] != 0||coefficient[i]!=0)
        {
            cout << ' ' << coefficient[i] << ' ' << index[i];
        }
    }
    return 0;
}
上一篇 下一篇

猜你喜欢

热点阅读