PAT乙级 1010 一元多项式求导 (25分)
设计函数求一元多项式的导数。(注:x^n(n为整数)的一阶导数为nx^{n−1}。) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。 输出格式: 以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0。 输入样例: 3 4 -5 2 6 1 -2 0 输出样例: 12 3 -10 1 6 0 注意点 用 while……EOF 的格式来读入系数和指数(黑框中触发 EOF 要按 ctrl + Z,并回车) 经测试,该题的指数都是非负整数 求导必须从低次项枚举到高次项,否则结果可能为出错 在求导后,当前系数必须清空为0,否则当前无法被后面覆盖 如果求导之后没有任何非零项,需要输出 0 0 #include <cstdio> const int maxn = 1001; int main() { int n[maxn] = {0}, c, e, cnt = 0; while (scanf("%d%d", &c, &e) != EOF) { n[e] = c; } n[0] = 0; for (int i = 1; i < maxn; i++) { n[i - 1] = i * n[i]; n[i] = 0; if (n[i - 1] != 0) { cnt++; } } if (cnt == 0) { printf("0 0"); } else { for (int i = maxn - 1; i >= 0; i--) { if (n[i] != 0) { printf("%d %d", n[i], i); cnt--; if (cnt != 0) { printf(" "); } else { break; } } } } return 0; }