• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    shell实现FizzBuzzWhizz问题示例(拉勾网面试题)

    试题: https://www.jinshuju.net/f/EGQL3D

    语言: Shell (Bash)
    运行方式:
    sh num-game.sh 数字1 数字2 数字3
    如果不想使用传递数字的方式, 可以修改 num-game.sh 第 9 行, 将
    NUM=$*
    改为
    NUM='数字1 数字2 数字3'
    然后直接运行 sh num-game.sh 即可

    复制代码 代码如下:

    #!/bin/bash

    ## Author : TaxKiz
    ## Email  : taxkiz@gmail.com

    export PATH='/bin:/sbin:/usr/bin:/usr/sbin'

    ## NUM='3 5 7'
    NUM=$*

    ## 检查输入的数字个数是否为 3 个
    function CT () {
        [ $( echo $* | sed 's/ /\n/g' | wc -l ) != '3' ] echo " Please Enter 3 Number ! " exit 1
    }

    CT $NUM

    ## 个位数列表
    NT='1/2/3/4/5/6/7/8/9'

    ## 检查输入的数字是否为个位数
    function CK () {
        for num in $*
        do
            [ $num == '0' ] echo "Error Number '$num'" exit 2
            echo $NT | grep "\b$num\b" > /dev/null 2>1
            [ $? != '0' ] echo "$num is not a single digit" exit 3
        done
    }

    CK $NUM

    ## 判断是否有重复的数字
    function SN () {
        if [ $1 == $2 ] || [ $1 == $3 ] || [ $2 == $3 ]; then
            echo "ERROR! There have same number : '$*'"
            exit 4
        fi
    }

    SN $NUM

    ## 大喊一声
    function GO () {

        A1=$1
        A2=$2
        A3=$3

        T1=$(( $1 * $2 ))
        T2=$(( $1 * $3 ))
        T3=$(( $2 * $3 ))

        TA=$(( $1 * $2 * $3 ))

        for num in {1..100}
        do
            echo $num | grep $A1 > /dev/null 2>1
            [ $? == '0' ] echo 'Fizz' continue

            echo "scale=2; $num/$TA" | bc | grep 00 > /dev/null 2>1
            [ $? == '0' ] echo 'FizzBuzzWhizz' continue

            echo "scale=2; $num/$T1" | bc | grep 00 > /dev/null 2>1
            [ $? == '0' ] echo 'FizzBuzz' continue

            echo "scale=2; $num/$T2" | bc | grep 00 > /dev/null 2>1
            [ $? == '0' ] echo 'BuzzWhizz' continue

            echo "scale=2; $num/$T3" | bc | grep 00 > /dev/null 2>1
            [ $? == '0' ] echo 'FizzWhizz' continue

            echo "scale=2; $num/$A1" | bc | grep 00 > /dev/null 2>1
            [ $? == '0' ] echo 'Fizz' continue

            echo "scale=2; $num/$A2" | bc | grep 00 > /dev/null 2>1
            [ $? == '0' ] echo 'Buzz' continue

            echo "scale=2; $num/$A3" | bc | grep 00 > /dev/null 2>1
            [ $? == '0' ] echo 'Whizz' continue

            echo $num

        done
    }

    GO $NUM

    您可能感兴趣的文章:
    • java实现拉钩网上的FizzBuzzWhizz问题示例
    • 使用python实现拉钩网上的FizzBuzzWhizz问题示例
    • 拉钩网java笔试题分享
    上一篇:vtune自动化安装脚本
    下一篇:Shell中处理包含空格的文件名实例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    shell实现FizzBuzzWhizz问题示例(拉勾网面试题) shell,实现,FizzBuzzWhizz,问题,