PAT (Basic Level) Practice (中文) 1010 一元多项式求导 (25 分)

举报
花花叔叔 发表于 2022/08/12 23:15:10 2022/08/12
【摘要】 题目描述 设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n*xn-1。) 输入格式 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 ...

题目描述

设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n*xn-1。)

输入格式

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

输出格式

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

输入样例

3 4 -5 2 6 1 -2 0

输出样例

12 3 -10 1 6 0

分析

将数组下标作为指数次幂,数组值作为项前的系数。输入是从前往后,输出是从后往前,如果求导之后没有非零项,就直接输出两个0 0

代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	int a[1010]={0};
	int k,e,count=0;
	while(scanf("%d %d",&k,&e)!=EOF)
	{
		a[e]=k;
	}
	a[0]=0;
	for(int i=1;i<=1000;i++)
	{
		a[i-1]=a[i]*i;
		a[i]=0;
		if(a[i-1]!=0)
		{
			count++;
		}
	}
	if(count==0)
	{
		printf("0 0");
	}else {
		for(int i=1000;i>=0;i--)
		{
			if(a[i]!=0)
			{
				printf("%d %d",a[i],i);
				count--;
				if(count!=0)
				{
					printf(" ");
				}
			}
		}
	}
}

文章来源: blog.csdn.net,作者:花花叔叔,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_52077949/article/details/119748966

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。