[洛谷U62358]求导函数
U62358 求导函数
题面
给出一个n次函数\(f(x)=a_{n}x^{n}+a_{n-1}x^{n-1}+...+a_{1}x+a_0\)的各项系数\(a_n,a_{n-1}...a_1,a_0\)
请计算它的导函数。
格式
输入包括两行。
第一行包括一个整数\(n\)。
第二行n+1个整数\(a_n,a_{n-1}...a_1,a_0\)
输出包括一行,即所求的导函数。具体格式见样例。
样例#1
输入
2
2 0 1
输出
f(x)=4x
样例#2
输入
7
3 8 0 2 1 7 4 4
输出
f(x)=21x^6+48x^5+8x^3+3x^2+14x+4
数据限制
| 规模 | n |
|---|---|
| 50% | \([1,20]\) |
| 50% | \([1,10000]\) |
| 规模 | \(a_i\) |
|---|---|
| 20% | \(0\) |
| 80% | \([-49,50]\) |
分析
这个题目中需要解决的问题有两个:
- 如何求导函数
- 如何输出
对于第一个问题,有题意可知f(x)一定是一个整式函数,所以有如下公式成立:
\]
而对于第二个问题,则需要注意很多特殊情况。
- 若\(a=0\),则跳过这一项
- 除了第一项,\(a>0\)时前面要有+号
- 除了最后一项,\(a=1/-1\)分别只能输出+和-
- 最后一项的\(x^0\)不能输出,倒数第二项的\(x^1\)只能输出\(x\)
解法
#include<bits/stdc++.h>
using namespace std;
int n,a;
int main(){
cin>>n;
cout<<"f(x)=";
for(int i=n;i>=0;i--){
cin>>a;
if(i==0)break; //只有n项
if(a==0)continue; //系数为0不输出
a*=i; //转换为导函数
if(a<0){ //负数时
if(i==1)cout<<a; //最后一项必须完整输出
else if(a==-1)cout<<'-'; //-1时只输出-号
else cout<<a;
}else{ //正数时
if(i!=n)cout<<'+'; //除了第一项都要有+号
if(a!=1||i==1)cout<<a; //系数不为一或最后一项时都要完整输出
}
if(i==2)cout<<'x'; //倒数第二项
else if(i!=1)cout<<"x^"<<i-1; //除了最后一项以外的
}
}
数据
[洛谷U62358]求导函数的更多相关文章
- 洛谷1440 求m区间内的最小值
洛谷1440 求m区间内的最小值 本题地址:http://www.luogu.org/problem/show?pid=1440 题目描述 一个含有n项的数列(n<=2000000),求出每一项 ...
- 洛谷 P1451 求细胞数量
题目链接 https://www.luogu.org/problemnew/show/P1451 题目描述 一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字 ...
- 【新知识】队列&bfs【洛谷p1996约瑟夫问题&洛谷p1451求细胞数量】
(是时候为五一培训准备真正的技术了qwq) part1 队列(FIFO) 算法简介: FIFO:First In First Out(先进先出) 队列是限定在一端进行插入,另一端进行删除的特殊线性表 ...
- 洛谷 P1440 求m区间内的最小值
传送门 思路 由于数据范围很大,所以使用单调队列,和滑动窗口这道题类似 首先第一个数输出\(0\),因为第一个数之前没有数 然后通过样例我们发现,最后一个数并没有派上什么用场,所以循环\(n-1\)轮 ...
- 洛谷 1440 求m区间内的最小值
洛谷 1440 求m区间内的最小值 题目描述 一个含有n项的数列(n<=2000000),求出每一项前的m个数到它这个区间内的最小值.若前面的数不足m项则从第1个数开始,若前面没有数则输出0. ...
- 【一本通1329:【例8.2】细胞&&洛谷P1451 求细胞数量】
1329:[例8.2]细胞 [题目描述] 一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数.如: 阵列 4 10 023 ...
- [洛谷P1440]求m区间内的最小值
题目大意:给你n个数,求出每个数前m位的最小值 题解:单调队列,用一个可以双向弹出的队列来存一串数,满足里面的数具有单调性,我们可以假设它是单调递增的,即求最小的数.那么可以把要插入的这个数与队尾元素 ...
- 洛谷P1451 求细胞数量
求细胞数量 题目链接 这道题大概是一个最简单的联通块的题了qwq 注意枚举起点的时候 一定不要从0开始不然你就会从0进入到了其他联通块中从而多查. 一定看清题意这道题不是同色为联通块!!! AC代码如 ...
- 洛谷——P2026 求一次函数解析式
P2026 求一次函数解析式 题目背景 做数学寒假作业的怨念…… 题目描述 给定两个整点的坐标,求它们所在直线的函数解析式(一次函数). 输入输出格式 输入格式: 输入共两行. 第一行有两个整数x1, ...
随机推荐
- Linux登录欢迎图案
命令提示符设置: export PS1='\n\[\e[37;1m[\]\[\e[31;1m\]\u\[\e[39;1m\]@\[\e[33;1m\]\H \[\e[34;1m\]\w\[\e[37; ...
- django 登陆增加除了用户名之外的手机和邮箱登陆
在setting内增加 # Application definition AUTHENTICATION_BACKENDS = ( 'users.views.CustomBackend', ) 在vie ...
- selenium 模块
介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如 ...
- yii2 商品上下架
视图层 <td><?php if($value['is_on_sale'] == 1) {?><img src="../web/images/yes.gif&q ...
- java 并发——线程
一.前言 前一篇文章总结了对 java 并发中的内置锁的理解,这篇文章来说说线程 ,并发与线程总有剪不断理还乱的关系.关于 java 线程的基本概念.线程与进程的关系以及如何创建线程,想必大家都很清楚 ...
- git 常用命令行操作
git常用命令行操作: 点击 git bash 进入到命令行: git clone https://github.com/wlz1244/qingoo.git //下载一个master分支代码 g ...
- eclipse调整字体大小
window->preferences->general->appearance->colors and fonts-> 双击Text Font 就调整字体大小了
- oracle修改某字段不是必输性
执行sql: ALTER TABLE table_name MODIFY 要修改的字段名字 NULL;
- Python 实例——进度条,文件读取
进度条: import sys import time for i in range(50): sys.stdout.write("*") sys.stdout.flush() t ...
- 企业级hbase HA配置
1 HBase介绍HBase是一个分布式的.面向列的开源数据库,就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类 ...