PAT-B 真题- 1010. 一元多项式求导

发布于 / PAT-乙级 / 0 条评论

题干:

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

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

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

输入样例:

3 4 -5 2 6 1 -2 0

输出样例:

12 3 -10 1 6 0

因为输入的多项式是不确定的,如果开一个数组就显得有点浪费空间(虽然并不会浪费多少。。)

遂想到用链表去写,但是链表太麻烦了。。。。所以继续使用万能的vector去做。

代码如下:

#include <cstdio>
#include <vector>
using namespace std;
typedef struct _node{
  int n;
  int e;
} node;

int main(void){
  vector<node> po;
  node s;
  int cnt = 0;
  while(1){
    scanf("%d %d", &s.n, &s.e);
    if(!(s.e)) break;
    s.n *= s.e;
    s.e--;
    po.push_back(s);
    cnt++;
  }
  vector<node>::iterator it = po.begin();
  if(cnt == 0)
    printf("0 0");
  for(; it != po.end(); it++){
    printf("%d %d",(*it).n,(*it).e);
    if((--cnt) != 0)
      printf(" ");
  }
  return 0;
}

转载原创文章请注明,转载自: 斐斐のBlog » PAT-B 真题- 1010. 一元多项式求导
目前还没有评论,快来抢沙发吧~