缺失的数字是多少?
小红跟小明打赌玩一个游戏,先让小明从1~100的数字中挑选99个数字,然后一一随即报出,小红她就能找出那个缺失的数字。有什么好办法来实现小红这个把戏?整个过程中,她不能做任何笔记,只能用自己的脑子去记忆和思考。
分析:
1+2+3+...+100 = (1+100)*50=5050
有以下算法可以简化这个过程,小红每次把小明报的数加起来,然后只取最后两位数,例如,小明报数:35,88,21,65
那么,小红心里就这样纪录:
35 //第一次记住35即可
35+88=123 //所以心里记住 23 即可
23+21=44 //依然是2位数,记住44
44+65=109 //记住9即可
…..
...
算算数字“1”显示多少次
<?php
//轿车的里程表可以显示 000000 到 999999 的任意六位数组合。里程表跑完整个显示区域,此间有多少个包含一个数字“1” 的里程数? 整个过程,数字“1” 显示多少次? (如,101111 显示了5次数字“1” ,下一个里程数101112又显示了4次)
for($i=0;$i<=9;$i++){
echo $i, ' exists ', showTimes(3, $i);
echo PHP_EOL;
}
function showTimes($num, $char){
$times = 0;
$i = 0;
do{
$ipad = str_pad($i,$num,'0', STR_PAD_LEFT);
// echo $ipad,' ',substr_count($ipad, $char),PHP_EOL...
Linux下查看TCP连接的状态的shell命令
netstat -n|awk '/^tcp/{++S[$NF]} END {for(a in S) print a,S[a]}'
统计当前TCP连接各种状态下的数量.
TIME_WAIT 205
ESTABLISHED 8474
遇到这种复杂的组合Shell脚本,基本方法是把它切分,一步步来观察,这样便于理解。
第一步:netstat -n ,这个我们可以单独在命令行下去执行的看下,得到的是一个列表, -n 表示以数字形式显示端口号
第二步:netstat -n|awk ‘/^tcp/ {print $NF}’ , 这个去执行的看下,得到的是一个列表, 是把所有上一个列表包含tcp的过滤出来,同时打印出了$NF这个字段,然后可能我们不懂$NF 是什么,你去查下呀,就知道了,这是当前记录里域个数,比方说我们用
netstat -n|awk ‘/^tcp/ {print $1...
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)