我是靠谱客的博主 孤独嚓茶,最近开发中收集的这篇文章主要介绍python爱因斯坦阶梯_实现韩信点兵的shell脚本效率,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

SHELL版本 写一个最基础的版本

NUM=3;

while true ; do

N2=`expr $NUM % 2`

if [ $N2 == 1 ] ; then

N3=`expr $NUM % 3`

if [ $N3 == 2 ]; then

N5=`expr $NUM % 5`

if [ $N5 == 4 ]; then

N6=`expr $NUM % 6`

if [ $N6 == 5 ]; then

N7=`expr $NUM % 7`

if [ $N7 == 0 ]; then

echo $NUM

exit;

else

NUM=`expr $NUM + 1`

continue

fi

else

NUM=`expr $NUM + 1`

continue

fi

else

NUM=`expr $NUM + 1`

continue

fi

else

NUM=`expr $NUM + 1`

continue

fi

else

NUM=`expr $NUM + 1`

continue

fi

done

优化第一步:使用 && 替代多个if判断

NUM=3;

while true ; do

if [ `expr $NUM % 2` == 1 ] && [ `expr $NUM % 3` == 2 ] && [ `expr $NUM % 5` == 4 ] && [ `expr $NUM % 6` == 5 ] && [ `expr $NUM % 7` == 0 ]; then

echo $NUM

break

else

NUM=`expr $NUM + 1`

continue

fi

done

优化结果:

效果看上去简洁了

效率没有任何提高

第二步优化:使用shell自带的函数

NUM=3;

while true ; do

if [ $(($NUM%2)) == 1 ] && [ $(($NUM%3)) == 2 ] && [ $(($NUM%5)) == 4 ] && [ $(($NUM%6)) == 5 ] && [ $(($NUM%7)) == 0 ]; then

echo $NUM

break

else

NUM=`expr $NUM + 1`

continue

fi

done

优化结果:

运行时间缩短了90%,牛逼,但是超越python版本还是有一点距离

第三步优化:替换到后面的自增

NUM=3;

while true ; do

if [ $(($NUM%2)) == 1 ] && [ $(($NUM%3)) == 2 ] && [ $(($NUM%5)) == 4 ] && [ $(($NUM%6)) == 5 ] && [ $(($NUM%7)) == 0 ]; then

echo $NUM

break

else

NUM=$(($NUM + 1))

continue

fi

done

优化结果:

时间低于python的时间,哈哈哈哈哈,很好很强大

Python版本

#!/usr/bin/env python

n = 3

while True:

if (n%2 == 1) and (n%3 == 2) and (n%5 == 4) and (n%6 == 5) and (n%7 == 0):

print n

break

else:

n += 1

continue

最后

以上就是孤独嚓茶为你收集整理的python爱因斯坦阶梯_实现韩信点兵的shell脚本效率的全部内容,希望文章能够帮你解决python爱因斯坦阶梯_实现韩信点兵的shell脚本效率所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部