题干:
设计函数求一元多项式的导数。(注: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;
}