shell整理(31)===判断平年闰年和嵌套循环的小例子

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell整理(31)===判断平年闰年和嵌套循环的小例子相关的知识,希望对你有一定的参考价值。

题目(一)

有1 2 3 4 四位数,任意组合有多少种互不相同且无重复的数字,分别是什么?

shell代码如下:

#!/bin/bash


for i in `seq 4`

do

        for x in `seq 4`

        do

                for y in `seq 4 `

                do

                         [ $x -eq $i  ] && continue

                         [ $x -eq $y  ] && continue

                         [ $i -eq $y  ] && continue

                        echo $i$x$y             



                done

        done

done


输出如下一共有24 种:

[[email protected] ding]# bash 11.sh 

123

124

132

134

142

143

213

............

例如:我们把题目改一下,还是1 2 3 4 输出如下规律

[[email protected] ding]# bash 12.sh 

123

124

134

234

[[email protected] ding]#

shell 代码如下:

#!/bin/bash


for i in `seq 4`

do

        for x in `seq $i 4`

        do

                for y in `seq $x 4`

                do

                [ $i -eq $x ] && continue

                [ $x -eq $y  ] && continue

                echo $i$x$y

                done

        done

done


技术分享


第一个题对着这个图完全可以想出来,一共有64种,但是我们加上判断什么的最终筛选出24种

(二)用户任意输入四个数字,判断是平年还是闰年

判断规则:

看年份末两位不能被4整除的是平年,被4整除但末两位都是0 的,要看前两位能被4整除的是闰年,不能整除的是平年。例如:1996 、2000闰年     1990 、1997平年

输出如下:

[[email protected] ding]# bash 14.sh 

Input:1996

Run Year

[[email protected] ding]# bash 14.sh 

Input:2000

Run Year

[[email protected] ding]# bash 14.sh 

Input:1990

Ping Year

[[email protected] ding]# bash 14.sh 

Input:1997

Ping Year

[[email protected] ding]# 


shell 代码如下:

#!/bin/bash



pre_1() {

        a=${#REPLY}

        [ -z $REPLY ] && echo -e "\033[32m plz Input! \033[0m" && exit 0

        [ $a -lt 4 ] && echo "Plz Input more four num!" && exit 0

}


pre_2() {

        b=`echo $REPLY |cut -c 3-4`

        d=`echo $REPLY |cut -c 1-2`

        c=$(($b%100))        #判断后两位是俩0,这是一种方法

        [ $c -eq 0  ] && [ $(($d%4)) -eq 0 ] && echo "Run Year" && exit 0

       [ $c -eq 0  ] && [ $(($d%4)) -ne 0 ] && echo "Ping Year" && exit 0

        f=$(($b%4))

}

echo -n "Input:"

read

pre_1

pre_2


if [ $f -ne 0 ];then

        echo "Ping Year"

else

        echo "Run Year"

fi


本文出自 “IT生活” 博客,请务必保留此出处http://dingxue.blog.51cto.com/12290895/1969132

以上是关于shell整理(31)===判断平年闰年和嵌套循环的小例子的主要内容,如果未能解决你的问题,请参考以下文章

判断平年和闰年

java判断平年闰年

假如我不知道今年是闰年还是平年计算明年的当前年月日(java)

java----判断闰年和平年

机试常见问题 关于平年闰年的判断问题

平年和闰年定义