打印倒序NxN乘法表
一.实验要求:
- 给定任意一个字符N(N>0),然后打印NxN的倒序乘法表。
二.解决问题:
#/!bin/bash
#
#define function
NxN_fun(){
local i=$1 #定义一个局部变量i控制外层循环
while [ $i -ge 1 ];do
local j=$i #定义一个局部变量j控制内层循环
while [ $j -ge 1 ];do
echo -e -n "$i*$j=$[i*j]\t"
let j--
done
echo #换行
let i--
done
}
#main
Flag=$(echo "$1" | sed 's/[0-9]//g' | wc -c) #判断脚本参数是整型还是字符
if [ ! $# -eq 1 ];then #判断脚本参数个数
echo ">_<||| 很尴尬~!!! Usage:$(basename $0) num."
exit 5
elif [ ! $Flag -eq 1 ];then #Flag值不等于1则给定的脚本参数为字符型
echo ">_<||| 很尴尬~!!! Usage:$(basename $0) num." #表情符号还是挺不错的
exit 5
fi
NxN_fun $1
[ $? -eq 0 ]&&echo "打印$1*$1乘法表完成 (^_^) 嘻嘻"||echo "函数执行错误,请检查...(b_d) 戴了副眼镜" #函数执行成功则打印乘法表
三.实验结果:

四.实验思考?
1.怎么判断脚本所给参数是字符还是整型,有没有其他的方法?
2.外层while循环参数能不能直接给$1 ,能怎么改,不能为什么?
五.让人欣慰的代码段是:
Flag=$(echo "$1" | sed 's/[0-9]//g' | wc -c)
打印倒序NxN乘法表的更多相关文章
- 使用VS2017进行Python代码的编写并打印出九九乘法表
我们来盘一盘怎么使用VS2017进行python代码的编写并打印出九九乘法表. 使用Visual Studio 2017进行Python编程不需要太复杂的工作,只需要vs2017安装好对Python的 ...
- 编写Java程序,使用循环结构打印出九九乘法表
编写Java程序,使用循环结构打印出九九乘法表 效果如下: 实现代码: public class Multiplication99 { public static void main(String[] ...
- java打印一下九九乘法表
public class Multiplication { public static void main(String[] args) { printTable(); } // 打印九九乘法表 pu ...
- 在网页中打印一个99乘法表--JavaScript描述
99乘法表使用for循环,在很多公司的面试中常会要求面试者手写这个算法,算是比较经典的for循环的应用 <!DOCTYPE html><html lang="en" ...
- Python打印:九九乘法表
代码: i = 1 while i <= 9: n = 1 while n <=i: print("%d*%d=%d\t"%(n,i,i*n),end="&q ...
- python 打印9*9乘法表
# -*- coding: utf8 -*- # Author:wxq 1. for i in range(1,10): for j in range(1,i+1): print "%d*% ...
- Java打印9*9乘法表
废话不多说直接贴代码, 先放一个标准的正三角形状的 for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { System ...
- 011_9*9 乘法表(编写 shell 脚本,打印 9*9 乘法表)
#!/bin/bashfor i in `seq 9`do for j in `seq $i` do echo -n "$i*$j=$[i*j] &q ...
- python使用for循环打印9*9乘法表。
代码如下: for a in range(1, 10): for b in range(1, 10): if b <= a: print("%d*%d=%d\t" % (b, ...
随机推荐
- 重温经典之赫夫曼(Huffman)编码
先看看赫夫曼树假设有n个权值{w1,w2,…,wn},构造一个有n个叶子结点的二叉树,每个叶子结点权值为wi,则其中带权路径长度WPL最小的二叉树称作赫夫曼树或最优二叉树. 赫夫曼树的构造,赫夫曼最早 ...
- 【单调队列】P1886 滑动窗口
GET 单调队列 题目描述 现在有一堆数字共N个数字(N<=10^6),以及一个大小为k的窗口.现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值. 例如: Th ...
- Linux菜鸟起飞之路【十】进程管理
一.基本概念 进程:程序的一次动态执行 守护进程:在后台运行并提供系统服务的进程 僵尸进程:完成了生命周期但却依然留在进程表中的进程,我们称之为 “僵尸进程” 父进程:指已创建一个或多个子进程的进程. ...
- com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 3 字节的 UTF-8 序列的字节 x 无效
在启动Tomcat项目时,控制台报错:nested exception is com.sun.org.apache.xerces.internal.impl.io.MalformedByteSeque ...
- paper:synthesizable finit state machine design techniques using the new systemverilog 3.0 enhancements之fsm summary
主要是1.不要用1段式写FSM 2.不要用状态编码写one-hot FSM ,要用索引编码写one-hot FSM.
- Thinkphp 5 调试执行的SQL语句
在模型操作中 ,为了更好的查明错误,经常需要查看下最近使用的SQL语句,我们可以用getLastsql方法来输出上次执行的sql语句.例如: User::get(1); echo User::getL ...
- OOP之单例模式
- Windows Bash on Ubuntu
windows Bash on Ubuntu, 之前就是尝试一下,更多是在不安装虚拟机的情况下,学下 bash. 这几天,在 上面 make u-boot,这个用起来比 cygwin方便多了. 之前在 ...
- Python9-loggin模块-day29
什么叫日志日志 是用来记录用户行为或者代码的执行过程 # import logging # logging.debug('debug message') #低级别的 排除信息 # logging.in ...
- java8新特性:接口的默认方法与静态方法
接口中一共可以定义三种方法: 1.抽象方法,也就是需要实现者必须实现的方法,最常见的那种 2.默认方法,不需要实现者实现 3.静态方法,不需要实现者实现 默认方法: 允许在已有的接口中添加新方法,而同 ...