<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>https://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>https://jackxiang.com/post/747/</link>
<title><![CDATA[[站长原创]百度笔试的一小题，SHELL求解]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Php/Js/Shell/Go]]></category>
<pubDate>Thu, 08 Nov 2007 07:49:28 +0000</pubDate> 
<guid>https://jackxiang.com/post/747/</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以本人性格，就是喜欢抄别人的，这次来点自己的吧，其实也是大家的，一哥们去百度参加面试的题目。。。呵呵，见笑！<br/>如百度4 <br/>baidu4: <br/>11 11 11 22 33 44 ... <br/>baidu4中有一行以空格隔开的十进制数，用shell编程求出它们的和并打印。 <br/>他shell不行，他用php写了一个。 <br/>求正解： <br/>我写了一个如下： <br/>FILE=&quot;baidu4&quot; <br/>read line &lt; $FILE <br/>r=0 <br/>for num in $line;do <br/>r=$(expr $num + $r) <br/>done <br/>echo $r <br/>在猜朋友写的php，我也写一个PHP的： <br/>&lt;?php<br/>$lines = file(&#039;baidu4&#039;);<br/>$result2 = 0;<br/>foreach ($lines as $line_num =&gt; $line) &#123;<br/>&nbsp;&nbsp;$result = explode(&quot; &quot;,$line); <br/>&nbsp;&nbsp;for($i=0;$i&lt;count($result);$i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$result2 += $result[$i];<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;echo $result2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&#125;<br/>?&gt;<br/><br/>再来个awk的：<br/>#!/usr/bin/awk -f<br/>BEGIN&#123;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum = 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (i=1; i&lt;=NF; i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum += $i;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;count == [%d]&#92;n&quot;,&nbsp;&nbsp;sum);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>END&#123;&#125; <br/><br/><br/><br/>我在用c语言写一个吧: <br/>太难用指针,让玩得好的指导下写了一个感谢罗玉峰，可以求多行的结果呢：<br/>#include &lt;string.h&gt;<br/>#include &lt;stdio.h&gt;<br/>char *pp,*p;<br/>char linebuf[4096];<br/>char tmp[1024];<br/>int i,tmpl;<br/>int&nbsp;&nbsp;main(void)<br/>&#123;<br/>FILE *fp;<br/>if ( ( fp = fopen (&quot;baidu4&quot;, &quot;r&quot;) ) == NULL )<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;cant&#039;t open the baidu4 file &quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(0);<br/>&#125;<br/>while(fgets(linebuf,4096,fp))<br/>&#123;&nbsp;&nbsp;&nbsp;&nbsp; <br/> linebuf[strlen(linebuf)-1] = 0;<br/> pp=linebuf;<br/> tmpl=0;<br/> p=strchr(pp,&#039; &#039;);<br/> while(p != NULL)<br/> &#123;<br/>&nbsp;&nbsp;strncpy(tmp, pp, p-pp);<br/>&nbsp;&nbsp;printf(&quot;tmp=[%s]&#92;n&quot;, tmp);<br/>&nbsp;&nbsp;tmpl+=atoi(tmp);<br/>//&nbsp;&nbsp;memset(tmpl, 0x00, sizeof(tmpl));<br/>&nbsp;&nbsp;memset(tmp, 0x00, sizeof(tmp));<br/>&nbsp;&nbsp;pp=p+1;<br/>&nbsp;&nbsp;p=strchr(pp,&#039; &#039;);<br/> &#125;<br/> if (*pp)<br/> &#123;<br/>&nbsp;&nbsp;strcpy(tmp, pp);<br/>&nbsp;&nbsp;tmpl+=atoi(tmp);<br/>&nbsp;&nbsp;printf(&quot;tmp=[%s]&#92;n&quot;, tmp);<br/> &#125;<br/> printf(&quot;total=%d&quot;,tmpl);<br/> memset(linebuf, 0, sizeof(linebuf));<br/> //memset(tmpl, 0, sizeof(tmpl));<br/> printf(&quot;----------------&#92;n&quot;);<br/>&#125;<br/>return 0;<br/>&#125;<br/>那位哥们能用java写个就完美了，:-)<br/>这位留言的哥哥真高，用sed替换和管道导入计算器bc来计算，确实很高：<br/><br/>Exaple: baidu4<br/>11 11 11<br/><br/>jackxiang@jackxiang-laptop:~$ sed &#039;s/ /+/g&#039; baidu4<br/>11+11+11<br/>jackxiang@jackxiang-laptop:~$ sed &#039;s/ /+/g&#039; baidu4&#124; bc <br/>33<br/>jackxiang@jackxiang-laptop:~$ <br/><br/>感谢那个留言的哥们，bc<br/><div class="code">echo &quot; 930307 -&nbsp;&nbsp; 921336&quot;&#124;bc</div><br/>[/home/jackxiang/bc]# echo &quot; 930307 -&nbsp;&nbsp; 921336&quot;&#124;bc<br/>8971<br/>&nbsp;&nbsp; 将10进制数转换成16进制数<br/><br/>　　比如转换 65535 为 16进制<br/><br/>　　echo &#039;obase=16; 65535&#039; &#124; bc<br/><br/>　　得到 FFFF<br/><br/><br/><br/>echo &#039;obase=16; ibase=8; 177777&#039; &#124; bc<br/><br/>　　可以直接将八进制的数177777变成十六进制，也是FFFF
]]>
</description>
</item><item>
<link>https://jackxiang.com/post/747/#blogcomment51492</link>
<title><![CDATA[[评论] [站长原创]百度笔试的一小题，SHELL求解]]></title> 
<author>wqfhenanxc &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Wed, 13 Jan 2010 06:25:58 +0000</pubDate> 
<guid>https://jackxiang.com/post/747/#blogcomment51492</guid> 
<description>
<![CDATA[ 
	<br/>哥来个简单的：<br/>sed &#039;s/ /+/g&#039; baidu4&#124; bc
]]>
</description>
</item><item>
<link>https://jackxiang.com/post/747/#blogcomment51496</link>
<title><![CDATA[[评论] [站长原创]百度笔试的一小题，SHELL求解]]></title> 
<author>root &lt;admin@yourname.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Wed, 13 Jan 2010 15:27:15 +0000</pubDate> 
<guid>https://jackxiang.com/post/747/#blogcomment51496</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>