打印倒序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)   

时间: 2024-07-30 09:15:02

打印倒序NxN乘法表的相关文章

c打印9*9乘法表

c打印9*9乘法表(这里提供了两种打印方法).乘号两边有规律可寻,其左边递减,右边递增. 1 #include <stdio.h> 2 int main() 3 { 4 int i, j, result; 5 for (i = 9; i >= 1; i--) //外层循环,从9开始,每次循环自减1 6 { 7 for (j = 1; j <= i; j++) //内层循环,从1开始,每次循环自加1 8 { 9 result = i*j; 10 printf("%d*%d=

24.打印9*9乘法表

/* * 打印9*9乘法表 */ public class Multiplication { public static void main(String[] args) { int i, j; // 循环变量 for (i = 1; i <= 9; i++){ // 外层循环控制被乘数 for (j = 1; j <= i; j++){ // 内层循环控制乘数 System.out.print(i+"*"+j+"="+(i*j)+"\t&qu

在网页中打印一个99乘法表--JavaScript描述

99乘法表使用for循环,在很多公司的面试中常会要求面试者手写这个算法,算是比较经典的for循环的应用 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>99乘法表</title></head> <script type="text/javascript"> docu

打印一个九九乘法表

for i in range(1,10): if i != 1: print('') # 这里其实是为了打印一个\n换行 for k in range(1,10): if i <= k: ans = str(i*k) if len(ans) == 1: # 为了格式好看,所以写了个判断,如果结果是一位数就空一格,不是一位就不空 print(('{}*{}='.format(i, k)+' '+str(i*k)), end=' ') else: print(('{}*{}='.format(i,

打印9*9乘法表

要求:/*输出9*9口诀.共9行9列,i控制行,j控制列.*/ #include <stdio.h> int main(int argc, const char * argv[]) { for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { printf("%i*%i = %i\t", j, i, i*j); } printf("\n"); } return 0; }

5、利用for循环打印 9*9 乘法表。

public class Test {// 定义类      public static void main(String[] args) {// 主函数,程序的入口             for(int i=1;i<=9;i++){                   for(int j=1;j<i+1;j++){                           System.out.print(j+"*"+i+"="+j*i+" &q

Python打印:九九乘法表

代码: 1 i = 1 2 while i <= 9: 3 n = 1 4 while n <=i: 5 print("%d*%d=%d\t"%(n,i,i*n),end="") 6 n += 1 7 print("") 8 i +=1 输出: 原文地址:https://www.cnblogs.com/wzpy/p/8203496.html

打印5*5乘法表

代码: 1 public class Main { 2 public static void main (String [] args) { 3 for(int i=1;i<=5;i++) { 4 for(int j=1;j<=i;j++) { 5 System.out.print(i+"x"+j+"="+i*j+" "); 6 } 7 System.out.println(); 8 } 9 } 10 } 原文地址:https://w

Shell脚本:打印九九乘法表

今天用三种不同的方式实现了Shell脚本打印的九九乘法表,代码如下 方法1:使用for循环(a.sh) #!/bin/sh for i in {1,2,3,4,5,6,7,8,9} do for j in {1,2,3,4,5,6,7,8,9} do ((product=$i*$j)) echo -ne $i\*$j=$product"\t" done echo done exit 0 方法2:使用while循环(b.sh) #!/bin/sh i=1 j=1 while [ &quo