源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-10-26 10:20 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要: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 即可
[u]复制代码[/u] 代码如下:
#!/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
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部