题解 | #输出7的倍数#
输出7的倍数
http://www.nowcoder.com/practice/8b85768394304511b0eb887244e51872
思路:
正解
- 从0数到500
- 每个数字对7进行取模。如果%7=0,则表示为倍数
#!bin/bash
num=0
while (( $num<=500 ))
do
if (( $num%7==0 ))
then
echo $num
fi
let "num++"
done
逆解
- 初始值=0,可直接输出
- 以7为倍数进行自增并输出。得到的结果都是满足题意
#!bin/bash
num=0
while (( $num<=500 ))
do
echo $num
let "num+=7"
done
总结
- 逆解效率肯定比正解好
- 正解:像憨憨一样的数数,先数到数字,在对7进行取模,判断条件,满足在输出。步骤有4
- 逆解:自增7,直接输出;步骤有2,而且是直达,
- 时间复杂度:
- 正解O(n);
- 逆解O(n/7)
- 提升性能,就是少做工作和减少内存开销;成倍的减少