思路:

正解

  1. 从0数到500
  2. 每个数字对7进行取模。如果%7=0,则表示为倍数
#!bin/bash
num=0
while (( $num<=500 ))
do
if (( $num%7==0 ))
then
    echo $num
fi
    let "num++"
done

逆解

  1. 初始值=0,可直接输出
  2. 以7为倍数进行自增并输出。得到的结果都是满足题意
#!bin/bash
num=0
while (( $num<=500 ))
do
    echo $num
     let "num+=7"
done

总结

  1. 逆解效率肯定比正解好
    1. 正解:像憨憨一样的数数,先数到数字,在对7进行取模,判断条件,满足在输出。步骤有4
    2. 逆解:自增7,直接输出;步骤有2,而且是直达,
  2. 时间复杂度:
    1. 正解O(n);
    2. 逆解O(n/7)
  3. 提升性能,就是少做工作和减少内存开销;成倍的减少