题目(一)
有1 2 3 4 四位数,任意组合有多少种互不相同且无重复的数字,分别是什么?
shell代码如下:
<code>#!/bin/bash</code>
<code>for</code> <code>i </code><code>in</code> <code>`</code><code>seq</code> <code>4`</code>
<code>do</code>
<code> </code><code>for</code> <code>x </code><code>in</code> <code>`</code><code>seq</code> <code>4`</code>
<code> </code><code>do</code>
<code> </code><code>for</code> <code>y </code><code>in</code> <code>`</code><code>seq</code> <code>4 `</code>
<code> </code><code>do</code>
<code> </code><code>[ $x -</code><code>eq</code> <code>$i ] && </code><code>continue</code>
<code> </code><code>[ $x -</code><code>eq</code> <code>$y ] && </code><code>continue</code>
<code> </code><code>[ $i -</code><code>eq</code> <code>$y ] && </code><code>continue</code>
<code> </code><code>echo</code> <code>$i$x$y </code>
<code> </code><code>done</code>
<code> </code><code>done</code>
<code>done</code>
输出如下一共有24 种:
[root@localhost ding]# bash 11.sh
123
124
132
134
142
143
213
............
例如:我们把题目改一下,还是1 2 3 4 输出如下规律
[root@localhost ding]# bash 12.sh
234
[root@localhost ding]#
shell 代码如下:
<code> </code><code>for</code> <code>x </code><code>in</code> <code>`</code><code>seq</code> <code>$i 4`</code>
<code> </code><code>for</code> <code>y </code><code>in</code> <code>`</code><code>seq</code> <code>$x 4`</code>
<code> </code><code>[ $i -</code><code>eq</code> <code>$x ] && </code><code>continue</code>
<code> </code><code>[ $x -</code><code>eq</code> <code>$y ] && </code><code>continue</code>
<code> </code><code>echo</code> <code>$i$x$y</code>
<a href="https://s5.51cto.com/wyfs02/M00/A6/38/wKioL1nLOJjQK5SrAAB53A4ypI8621.png-wh_500x0-wm_3-wmp_4-s_1290789857.png" target="_blank"></a>
第一个题对着这个图完全可以想出来,一共有64种,但是我们加上判断什么的最终筛选出24种
(二)用户任意输入四个数字,判断是平年还是闰年
判断规则:
看年份末两位不能被4整除的是平年,被4整除但末两位都是0 的,要看前两位能被4整除的是闰年,不能整除的是平年。例如:1996 、2000闰年 1990 、1997平年
输出如下:
[root@localhost ding]# bash 14.sh
Input:1996
Run Year
Input:2000
Input:1990
Ping Year
Input:1997
[root@localhost ding]#
<code>pre_1() {</code>
<code> </code><code>a=${</code><code>#REPLY}</code>
<code> </code><code>[ -z $REPLY ] && </code><code>echo</code> <code>-e </code><code>"\033[32m plz Input! \033[0m"</code> <code>&& </code><code>exit</code> <code>0</code>
<code> </code><code>[ $a -lt 4 ] && </code><code>echo</code> <code>"Plz Input more four num!"</code> <code>&& </code><code>exit</code> <code>0</code>
<code>}</code>
<code>pre_2() {</code>
<code> </code><code>b=`</code><code>echo</code> <code>$REPLY |</code><code>cut</code> <code>-c 3-4`</code>
<code> </code><code>d=`</code><code>echo</code> <code>$REPLY |</code><code>cut</code> <code>-c 1-2`</code>
<code> </code><code>c=$(($b%100)) </code><code>#判断后两位是俩0,这是一种方法</code>
<code> </code><code>[ $c -</code><code>eq</code> <code>0 ] && [ $(($d%4)) -</code><code>eq</code> <code>0 ] && </code><code>echo</code> <code>"Run Year"</code> <code>&& </code><code>exit</code> <code>0</code>
<code> </code><code>[ $c -</code><code>eq</code> <code>0 ] && [ $(($d%4)) -</code><code>ne</code> <code>0 ] && </code><code>echo</code> <code>"Ping Year"</code> <code>&& </code><code>exit</code> <code>0</code>
<code> </code><code>f=$(($b%4))</code>
<code>echo</code> <code>-n </code><code>"Input:"</code>
<code>read</code>
<code>pre_1</code>
<code>pre_2</code>
<code>if</code> <code>[ $f -</code><code>ne</code> <code>0 ];</code><code>then</code>
<code> </code><code>echo</code> <code>"Ping Year"</code>
<code>else</code>
<code> </code><code>echo</code> <code>"Run Year"</code>
<code>fi</code>
<code></code>
本文转自 大雪儿 51CTO博客,原文链接:http://blog.51cto.com/dingxue/1969132,如需转载请自行联系原作者