B1010 一元多项式求导 (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


思路:
1、同时读取系数和指数,以 ‘\n’ 作为输入的结束。
2、求导后的系数为当前系数乘当前指数,求导后指数为当前指数减 1。
3、注意:当求导后系数为 0 时,该项不需要输出。但当求导后为零多项式时需要输出0 0

#include<stdio.h>
#include<stdlib.h>

int main()
{
 	int i = 0, n = 0;
 	int input[20] = { 0 };
 	
 	while (1)
 	{
  		scanf("%d%d", &input[n], &input[n + 1]);
  		n += 2;
  		if (getchar() == '\n')
  		{
   			break;
  		}
 	}
 	for (i = 0; i < n; i += 2)
 	{
  		input[i] = input[i] * input[i + 1];
  		if (input[i + 1] != 0)
  		{
   			input[i + 1]--;
  		}
  		if (i != 0 && input[i] == 0)
    		{
      		continue;
    		}
    		else if (i != 0)
    		{
      		putchar(' ');
    		}
    		printf("%d %d", input[i], input[i + 1]);
  	}
  	putchar('\n');
 	
 	system("pause");
 	return 0;
}

猜你喜欢

转载自blog.csdn.net/shiawaseli/article/details/89645504