作者yoco315 (眠月)
站内Programming
标题Re: [问题] 面试遇到的程式问题,现在还想不出来(MTK)
时间Wed Jan 2 13:17:14 2008
※ 引述《asleepme (冬天了)》之铭言:
: for( i=0; i<=100; i++)
: s=s+i;
for ( i=100; --i ; )
s += i ;
首先是 i++ 後置要改前置
因为 C/C++ 里面写後置是会复制一个暂存物件的
阿这边复制一下是需要成本的
当然这边 compiler 有可能会帮你吸收掉
不过知道意思就好
然後 i<=100 改 i
这边就是少作一个减法
当然这个还是看 cpu
不过知道意思就好
然後是 s = s+i 改成 s += i
就是省掉好几个动作嘛
不过 compiler 当然还是有可能帮你吸收掉
不过知道意思就好
其实只有第一个原因比较隐晦吧
後面两个都蛮明显的,一般人也都会想到
不过第三个根本就是明显到根本没差了
因为 compiler 几乎都会帮你作掉
总之各种改法都只对不够好的 compiler 有用
compiler 够好的话,这些差异其实都会被吸收掉..
我其实不是很懂这个面试官的重点是在哪边 ._.a
--
To iterate is human, to recurse is divine.
递回只应天上有, 凡人该当用回圈. L. Peter Deutsch
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.78.40
1F:推 asleepme:有可能是他们要自己写compiler吧 220.137.66.239 01/02 13:40
2F:推 PcGrek:这样写会变成99加到0…@@ 140.124.42.60 01/02 21:13
3F:→ PcGrek:照我同学去面试的说法,应该是考第二点。 140.124.42.60 01/02 21:16
4F:→ yoco315:阿 对喔 哈哈哈 对不起 QQ 140.114.78.40 01/02 22:08
5F:→ piimaila:说不定是要找在DOS下开发测试工具的人 61.231.242.45 01/03 18:15
6F:推 march20:其实搞不好是想考 "嘿, 知道某牌的 71.136.239.225 01/04 17:53
7F:推 march20:"compiler 有这种 bug ". 71.136.239.225 01/04 17:53
8F:推 march20:我论原 po 应徵 M$ 的可能性 XD 71.136.239.225 01/04 17:54