博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
经典-输出规律的数字序列
阅读量:6823 次
发布时间:2019-06-26

本文共 2210 字,大约阅读时间需要 7 分钟。

第1章 问题:

群友问了个问题:我shell,我怎么才只打出100110120.....190  201,211,......291  ,302,312,322....392 这种格式的数据

 

第2章 问题分析

2.1 需求:

我这个会用在数据库,前面10个库,我如果是第一个库,我就会建表00 10  20 。。。90 。第二个库就用01 ,11 ,,,91

2.2 分析

一个循环加一个if就可以,干嘛双循环呢

因为不管怎么变,步进都是10,所以根本没必要1个1个循环,10个10个就行

这时候就得考虑每到100的时候+1

所以就这么个思路

此处感谢潜艇大叔,提供思路。

2.3 想要的结果

110120130140150160170180190211221231241251261271281291312322332342352362372382392413423433443453463473483493514524534544554564574584594615625635645655665675685695716726736746756766776786796817827837847857867877887897918928938948958968978988998101910291039104910591069107910891099

 

第3章 解答方法

注:(为了节约空间只显示到500

3.1 方法一-awk01-循环+判断

 

[root@show scripts]# awk 'BEGIN{for(i=100;i<=500;i+=10){j++;print i;if(j%10==0)i++}}'100110120130140150160170180190201211221231241251261271281291302312322332342352362372382392403413423433443453463473483493

思路很简单,通过j变量控制循环,每10次 使得i的值+1(既i++)

目的是达到 201  302 403  这种效果。

3.2 方法二-awk02-循环+三目运算符

[root@show scripts]# awk 'BEGIN{for(i=100;i<=500;i+=10){j++;print(j%10==0?i++:i)}}'100110120130140150160170180190201211221231241251261271281291302312322332342352362372382392403413423433443453463473483493

三目运算符:相当于if xxx ;then   xxxx; xxx     fi 条件判断。

也是很好的方法。

3.3 方法三-shell01-循环+判断

#!/bin/bashfor((i=100;i<=$1;i+=10))do let j++echo $i  if [ $((j%10)) -eq 0 ];then   let  i++  fi done[root@show scripts]# sh  seq.sh  500100110120130140150160170180190201211221231241251261271281291302312322332342352362372382392403413423433443453463473483493

awk可以做,其实shell也可以实现的。

思路一致的。

3.4方法四-shell02-循环+三目运算符

#!/bin/bashfor((i=100;i<=500;i+=10))do let j++ echo $((j%10==0?i++:i))done[root@show scripts]# sh seq.sh  500100110120130140150160170180190201211221231241251261271281291302312322332342352362372382392403413423433443453463473483493

 shell也不甘示弱,我也有三目运算符啊。

3.5 方法五-shell02-不推荐-没效率

#!/bin/bashfor((i=1;i<=5;i++))do   for((j=10;j<=90;j+=10))   do   middle=`printf %02d"$j"`   num=$i$((middle+i-1))   echo $num   donedone [root@show scripts]# sh  seq2.sh110120130140150160170180190211221231241251261271281291312322332342352362372382392413423433443453463473483493514524534544554564574584594

最简单的思路,可是双层嵌套循环,没有效率。

第4章 总结

最核心的是算法,到底如何做。

一个循环,每十次自动加1.

难免有不足之处请大家指正谢谢。

本文转自 李导 51CTO博客,原文链接:http://blog.51cto.com/lidao/1782422

转载地址:http://wbgzl.baihongyu.com/

你可能感兴趣的文章
色情网站用户数据黑市开卖 不能说的“大人物”有哪些
查看>>
美最大IDC服务商Equinix宣布将继续使用可再生能源
查看>>
大规模实时数据处理openPDC
查看>>
美司法部要求Facebook配合国税局查税
查看>>
wxWidgets(2):一个好用C/C++ php 开源IDE —— CodeLite IDE
查看>>
Appium环境抢建(for web browser test)
查看>>
安防云计算核心技术探讨
查看>>
可从网站抓取数据的数据析取平台Import.io获1300万美元A轮融资
查看>>
混合云VPC组网场景和方案分享(一)
查看>>
Syniverse为亚洲100多家运营商提供一系列服务
查看>>
“光伏双反”与“201条款”有何差异?
查看>>
Android集成测试
查看>>
能源互联网将如何开拓光伏新市场?
查看>>
《Hadoop与大数据挖掘》一2.4.1 HDFS Java API操作
查看>>
《iOS App界面设计创意与实践》——iOS开发工具和资源
查看>>
Firefox OS 未死,这两款松下电视会搭载该系统
查看>>
AngularJS 1.3.0 正式发布,超光速发展!
查看>>
Chrome 将进一步削弱 Flash 内容
查看>>
《After Effects CC中文版超级学习手册》——导读
查看>>
Tor 项目弃用 obfs2,开发 obfs4
查看>>