设计函数求一元多项式的导数。(注: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> #include <iostream> const int maxn = 1010; int poly[maxn] = { 0 }; using namespace std; int main(){ int a, exp, count = 0; while (scanf("%d %d", &a, &exp)!=EOF){ // if(exp>0){ if (count == 0){ printf("%d", a*exp); } else{ printf(" %d", a*exp); } printf(" %d", exp - 1); count++;} } if(count==0){ printf("0 0"); } system("pause"); }
注意点:题目输入不固定长度,要用 while (scanf("%d %d", &a, &exp)!=EOF) 读取,最开始用getchar来判断最后一个是不是0来判断输入结束,发现太愚蠢了,题目又没有保证多项式的常数项一定有。由于是高项开始输入因此可以直接读一个输出一个,不用再保存到一个数组中,保存到数组中一定要注意不能只判断poly[i]>0,因为系数会小于0,所以判断条件为!=0。
----------------
坚持每天学习一点点