面试遇到的题目 求教
由于题目是英文的,面试也过去一段时间了 题目不全,如果觉得没什么好回答就就算了吧~
如下:
说明下面两个程序的区别及运行优劣:
1:
for(int i=1;i<1000;i++)
{
.....//里面的程序忘了 不记得是不是跟里面的程序有关系了
}
2:
for(int i=1000;i>=1;i--)
{
.....//里面的程序忘了 不记得是不是跟里面的程序有关系了
}
大家说说 感觉好像要从计算机底层计数说起了,因为那家公司偏底层一些
如果没什么区别就算了~
谢谢大家
[解决办法]
这种题目……
唉,真要说的话,貌似听说从电子元件的物理特性上考虑,从1变0比从0变1容易……导致减法比加法快……
可能在那种几Mhz的单片机上能体现出来差别吧
[解决办法]
[解决办法]
从任意数减到0,总体上不就是变全0么
反过来必然有0变1
[解决办法]
[解决办法]
[解决办法]
楼主肯定写错了,否则两个循环次数都不一样,第一个999次,第二个1000次
如果都是1000次,因为i是从1开始,相信里面的代码操作是用某数组a的a[i]和a[i-1]进行比较
在这个假设下,两者是有区别的
[解决办法]
个人没看出什么差别,特别是在x86平台下面。
当然,两个循环次数不一样。
[解决办法]
大概和里面程序有关吧
非要说有什么区别的话,看汇编命令,比较是否为1000需要CMP和跳转两条命令,比较是否为0只需要JNZ一条命令
或者,如果循环范围不确定的话,第二种写法可能少用一个临时变量