主页 > 知识库 > shell实现FizzBuzzWhizz问题示例(拉勾网面试题)

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

热门标签:陕西电销卡外呼系统怎么安装 东莞电销机器人价格一览表 旅游地图标注大全 地图标注超出范围怎么办 excel地址地图标注 百度地图的地图标注 佛山高德地图标注中心 百度地图标注图标更换 杭州机器人外呼系统

试题: 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笔试题分享

标签:青岛 朝阳 通辽 雅安 南充 延边 随州 西藏

巨人网络通讯声明:本文标题《shell实现FizzBuzzWhizz问题示例(拉勾网面试题)》,本文关键词  shell,实现,FizzBuzzWhizz,问题,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《shell实现FizzBuzzWhizz问题示例(拉勾网面试题)》相关的同类信息!
  • 本页收集关于shell实现FizzBuzzWhizz问题示例(拉勾网面试题)的相关信息资讯供网民参考!
  • 推荐文章