题目链接:http://pat.zju.edu.cn/contests/80/1010
设计函数求一元多项式的导数。
输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。
输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。
输入样例:3 4 -5 2 6 1 -2 0输出样例:
12 3 -10 1 6 0
代码如下:
#include <cstdio> #include <cmath> #include <cstring> const int maxn = 1017; int a[maxn], b[maxn]; int c[maxn], d[maxn]; void solve(int n) { int l = 0; for(int i = 0; i < n; i++) { if(b[i])//注意 { c[l] = a[i]*b[i]; d[l] = b[i]-1; l++; } } if(l == 0) { printf("0 0\n"); } else { int flag = 0; for(int i = 0; i < l; i++) { if(flag) printf(" "); else flag = 1; printf("%d %d",c[i],d[i]); } printf("\n"); } } int main() { int tt; int cont = 1; int l = 0; while(scanf("%d",&tt)!=EOF) { if(cont&1) a[l] = tt; else { b[l] = tt; l++; } cont++; } solve(l); }
再贴一发比较短的代码:
#include <cstdio> #include <cstring> int main() { int n, e, flag = 0; while(scanf("%d%d", &n, &e)!=EOF) { if( n*e ) { if(flag) printf(" "); else flag = 1; printf("%d %d", n*e, e-1); } } if(!flag) printf("0 0"); return 0; }
1010. 一元多项式求导 (25) (ZJUPAT 数学求导)
原文地址:http://blog.csdn.net/u012860063/article/details/39557509