<已解决>PTA 1010 一元多项式求导 题目分析及答案

1. 题目描述

1010 一元多项式求导

设计函数求一元多项式的导数。

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

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

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

2. 题目分析

咋一看题目一头雾水,但是翻译成数学符号还是比较好理解的:
输入以两个数为一组,即[3,4],[-5,2],[6,1],[-2,0]
其中,前一个数为 多项式系数,后一个数为 多项式指数

2.1 输入样例还原:

3 x 4 − 5 x 2 + 6 x 1 − 2 x 0   3x^{4}-5x^{2}+6x^{1}-2x^{0}\, 3x45x2+6x12x0

2.2 求导法则:

在这里插入图片描述
若输入a , n,则输出a*n , n-1,其中a为多项式系数

2.3 输出样例还原:

12 x 3 − 10 x 1 + 6 x 0   12x^{3}-10x^{1}+6x^{0}\, 12x310x1+6x0
(常数项求导为零,不用输出)

3. 题目求解

题目要求啥就直接输出啥,不用想办法保存结果

3.1 先处理特殊情况:零多项式

注意“零多项式”的指数和系数都是 0,但是表示为 0 0。

因为输入是以指数递降方式给出,所以在循环之前先做一个判断if( n == 0) printf("0 0");

3.2 非零多项式:

正常按求导规则直接输出即可:if(n != 0) printf(" %d %d",x*n,n-1);

4. AC代码

#include<stdio.h>
int main(void){
    int x, n;    
    scanf("%d %d",&x,&n);    
    if( n == 0)
        printf("0 0");  
    else
		printf("%d %d",x*n,n-1);
    while(EOF != scanf("%d %d",&x,&n)) 
		if(n != 0)
			printf(" %d %d",x*n,n-1);    
	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值