设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为nxn−1。)
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0
。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
关键之处:
- 别想着用链表处理多项式太复杂了。以一个系数、一个指数为一组,每次输出一组的结果即可。
- “零多项式”的情况单独输出。
代码:
#include <stdio.h>
int main(void) {
int coef, exp, count;
char ch;
count = 0; //用来处理行末不留空格以及“零多项式”的情况。
while ( 1 ) {
scanf("%d %d", &coef, &exp); //每次处理一个系数、一个指数。
if ( exp ) { //指数不为0,才对它求导。
if ( count++ != 0 ) printf(" "); //除了第一组,其他前面都留空格。
printf("%d %d", coef * exp, exp - 1);
}
if ( (ch = getchar()) == '\n' ) break; //遇到回车,退出循环。
}
if ( count == 0 ) printf("0 0"); //如果上面的循环没有执行,说明是零多项式。
return 0;
}