• shell练习--PAT试题1010:一元多项式求导 (25 分)(失败案例喜加一)


    ---恢复内容开始---

    1010 一元多项式求导 (25 分)

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

    输入格式:

    以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 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
    

      结论,失败案例喜加一!

  • 相关阅读:
    Java实现 蓝桥杯 算法提高 队列操作
    DUILIB创建不规则窗体,自定义控件(很不错的几十篇文章)
    修改窗口属性(全部都是SetWindowLong设置)
    搭建DirectUi开发平台
    _CrtSetBreakAlloc简单内存泄漏检测方法,解决Detected memory leaks!问题
    VLD(Visual LeakDetector)内存泄露库的使用
    设计模式之组合模式
    Moq的使用心得
    Moq 测试 属性,常用方法
    C#中Linq查询基本操作
  • 原文地址:https://www.cnblogs.com/wyf-349/p/11474557.html
Copyright © 2020-2023  润新知