shell练习--PAT试题1010:一元多项式求导 (25 分)(失败案例喜加一)
2024-10-07 02:51:05
---恢复内容开始---
1010 一元多项式求导 (25 分)
设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为nxn−1。)
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0
。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
说来惭愧,我都忘记了导数是个什么鬼了,所以参考其他人的答案,用shell方式仿写,过不过另说了
在此致谢:https://zhuanlan.zhihu.com/p/47142303 的作者君
分析题目:
1.以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。
非零项系数,也就是说存在一个未知数x,x的系数非0,对应 3 4 及表示对多项式为:3 * x **4 。求导之后返回的结果为: 3 * 4 * x**(4-1) 对应返回系数为 12 返回指数为3.
2.注意“零多项式”的指数和系数都是 0,但是表示为 0 0
。
这里表示的是,当x的系数为0,或者x的指数为0的时候,表示为 0 0 (对常数求导,结果为0)
shell示例代码如下:
#!/bin/bash func_fx(){
if [ $(expr $1 \* $2 ) -eq 0 ] #需要注意的是expr的格式,运算符前后需要空格,乘号需要转义
then
echo " 0 0" #shell函数的返回使用echo
else
echo " $(expr $1 \* $2) $(expr $2 - 1)" #直接使用空格隔开
fi
} read -p"input numbers:" numbers item=($numbers) #转换为数组 if [ ${item[1]} -eq 0 ]
then
echo " 0 0"
else
lex_fx=$(expr ${#item[@]} / 2)
for (( i=0;i<$lex_fx;i++))
do
result=$(func_fx ${item[$(expr $i \* 2)]} ${item[$(expr $i \* 2 + 1)]} )
result_items+=$result #拼接字符串,注意的是 result返回的结果本身有空格分隔
done
result_items=($(echo $result_items)) #转化为数组,方便删除对应元素位的0
if [ ${result_items[-1]} -eq 0 ] && [ ${result_items[-2]} -eq 0 ]
then
unset result_items[-1]
unset result_items[-2]
echo ${result_items[@]} #因为shell的数组默认就是以空格分隔,末尾无空格,所以直接输出
exit
fi
fi
结论,失败案例喜加一!
最新文章
- 移动开发框架剖析(二) Hammer专业的手势控制
- eclipse安装genymotion的奇葩问题
- C# 模拟鼠标移动与点击
- 二模11day2解题报告
- java 邮箱验证公共方法
- inline-block元素之间出现间隙
- SharePoint excel service web part 连接到 filter web part
- (Problem 5)Smallest multiple
- C#获取本机所有用户名
- Layui的一点小理解(上)
- HTML5+CSS3静态页面项目-BusinessTheme的总结
- IFuzzer:An Evolutionary Interpreter Fuzzer using Genetic Programming
- IntelliJ IDEA 打开项目红色
- Asp.Net MVC中Action跳转(转载)
- Docker 系列七(Dubbo 微服务部署实践).
- python正则表达式(一)
- Ueditor百度编辑器中的 setContent()方法的使用
- linux下常用的截图、录屏工具
- 程序员教程-11章-Java程序设计
- 使用FIO测试磁盘iops
热门文章
- 【Linux开发】linux设备驱动归纳总结(五):4.写个简单的LED驱动
- docker-compose 部署elk+解决时间不对导致kibana找不到logstash定义的index + docker-compose安装
- linux分区知识
- postman测试webservice接口
- Maven设置阿里仓库镜像增加访问速度
- # [爬虫Demo] pyquery+csv爬取猫眼电影top100
- java-阿里云发送短信
- python之成像库pillow
- pytorch中的torch.repeat()函数与numpy.tile()
- Linux操作系统的常用命令(一)