一、题目和题意分析

  设计函数求一元多项式的导数。x^n [n为整数] 的一阶导数为nx^(n−1)。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

  输入格式: 以指数递降方式输入多项式非零项系数和指数(*绝对值均为不超过 1000 的整数*)。数字间以空格分隔。

  输出格式: 以与输入相同的格式输出导数*多项式非零项的系数和指数*。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0
0。

  输入样例: 3 4 -5 2 6 1 -2 0
  输出样例: 12 3 -10 1 6 0


二、解题思路

  如果是零多项式,则输出0 0,否则输出多项式非零项的系数和指数。

#include <stdio.h>

#define MAX 1000
struct Info { int pre; int expo; }; int main(int argc, char *argv[]) { struct Info A[MAX]; int j, flag; j = 0; while ( scanf("%d %d", &A[j].pre, &A[j].expo) != EOF ) { /* 输入非零项系数和指数 */ A[j].pre *= A[j].expo; if ( A[j].expo != 0 ) { A[j].expo -= 1; } else { A[j].expo = 0; /* constant */ } /* 输出导数多项式非零项的系数和指数 */
         if ( A[j].pre == 0 && A[j].expo == 0 ) { // pre,expo equal to 0
            if ( j == 0 ) { printf("0 0"); break; } else { continue; } } else if ( A[j].pre != 0 ) { // pre not equal to 0 
            if ( j == 0 ) { printf("%d %d", A[j].pre, A[j].expo); } else { printf(" %d %d", A[j].pre, A[j].expo); } } j++; } return 0; }

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄