PAT Basic 1010

来源:互联网 发布:mac用pe安装win7系统 编辑:程序博客网 时间:2024/05/16 14:44

PAT Basic 1010. 一元多项式求导 (25)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard

设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n*xn-1。)(n为指数)

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

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

输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0

解答:

#include <iostream>#include <cstring>#include <cstdio>#include <queue>//AC 25/25//注意零多项式  零多项式”的指数和系数都是0,但是表示为“0 0”。using namespace std;const int maxn = 4000+10;int a[maxn], b[maxn];int main(){    memset(a, 0, sizeof(a));    int n=1;    while(cin>>a[n]){        n++;    }    queue<int> que;    int j=1;    for(int i=2;i<=n;i+=2){        if(a[i]==0) continue;//指数为零的时候,跳过当前x,不计算        que.push(a[i-1]*a[i]);        que.push(a[i]-1);    }    bool flag=0;    while(!que.empty()){        if(flag) cout<<" ";        else flag = !flag;        cout<<que.front();        que.pop();    }    if(!flag) cout<<"0 0"<<endl;    return 0;}