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

时间: 2024-10-12 14:09:23

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

shell整理(32)===两个嵌套循环的小例子

(1)shell打印如下图所示的图案. shell 代码如下: #!/bin/bash echo "-" for i in `seq 9` do for x in `seq $i` do echo -n " " done echo "|" echo for y in `seq $i` do echo -n " " done echo "-" done echo "          |"

c语言判断平年/闰年

要求: 用户输入年份之后,判断输入的是平年还是闰年 #include<stdio.h> #include<stdlib.h> #include<string.h> intmain(void) { //定义变量 int year = 0; int temp = 0; int temp1 = 0; //提示用户输入年份 printf("请输入年份:"); scanf("%d",&year); //首先判断当前的年份是否为整百或

判断平年和闰年

判断平年还是闰年 公元年数可被4整除为闰年,但是整百(个位和十位均为0)的年数必须是可以被400整除的才是闰年.其他都是平年.闰年的2月有29天. 在书写相关的程序时,可以通过判断[能被四整除但不能被100整除(余数为0)]或者是[能被400整除]即可.如下面用C语言实现的代码:

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

以前一直以为闰年366天,只要被4整除就是闰年,实际不然: 1.天数问题: 闰年:366天: 平年:365天: 简记:平年胸平,365天,比较小: 2.如何判断: 闰年:两种情况: 1)四百的整数倍: 2)4的倍数,但不是一百的倍数,典型的如2100年,是平年而不是闰年: 平年:剩下的就是平年: 简记:四年一孕,百年不孕,四百年又孕. 典型问题:https://www.nowcoder.com/practice/ae7e58fe24b14d1386e13e7d70eaf04d?tpId=40&t

[Shell]if 常用判断条件

IF 判断 之前也写过简单的shell脚本,也不是转职运维,和系统相关的工作比较少,所以不怎么熟练. 最近由于系统总是出现各种乱七八糟的问题,也没有人来协助,只好自己写shell脚本了,都是些基础的脚本,但由于shell的语法和通常的高级语言有些不一样,所以还是要系统的看下常用的部分. if语句就是很重要的一个. 这种文章很多,只是拿来主义,如果有心得体会也会加上,小计下以后备查. 基本结构:  if语句块需要使用if结束 if condition then statements elif co

shell中条件判断if中的-z到-d的意思

shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真. [ -d FILE ] 如果 FILE 存在且是一个目录则为真. [ -e FILE ] 如果 FILE 存在则为真. [ -f FILE ] 如果 FILE 存在且是一个普通文件则为真. [ -g FILE ] 如果 FILE 存在且已经设置了SGID则

Shell脚本中判断输入参数个数的方法投稿:junjie 字体:[增加 减小] 类型:转载

Shell脚本中判断输入参数个数的方法 投稿:junjie 字体:[增加 减小] 类型:转载 这篇文章主要介绍了Shell脚本中判断输入参数个数的方法,使用内置变量$#即可实现判断输入了多少个参数,需要的朋友可以参考下 $#代表了命令行的参数数量,可以看以下实例: 复制代码 代码如下: if [ $# != 1 ] ; then echo "USAGE: $0 TABNAME" echo " e.g.: $0 CDR_CALL_20040701" exit 1; f

Shell中条件判断语法与判断条件

一,简介 Shell各种判断结构和运算符的用法是shell编程的基础,了解shell的判断.运算符和一些退出状态 对后面的学习有很重要的影响.shell有一个内部命令test经常用于对判断语句 进行测试一种或几种状态的条件是否成立 二. 判断条件 (1)Linux的shell中的测试命令,用于测试某种条件或某几种条件是否真实存在 测试命令是判断语句和循环语句中条件测试的工具,对判断和运算符的比较测试有很大的帮助. (2)测试条件为真,返回一个0值:      为假,返回一个非0整数值 测试命令有

武汉科技大学ACM :1002: 零起点学算法28——判断是否闰年

Problem Description 输入年份,判断是否闰年 Input 输入一个整数n(多组数据) Output 如果是闰年,输出yes,否则输出no(每组数据一行) Sample Input 2000 Sample Output yes 我的代码: 1 #include<stdio.h> 2 int main() 3 { 4 int year; 5 while(scanf("%d",&year)!=EOF) 6 { 7 8 if((year%4==0 &