考虑下面的函数考虑到通过代码
- 另外的成本你4个操作
- 转让费1操作
- 比较加1个操作
上述函数的计算将花费14次操作
int function1(int a,int b,int c, int d, int e)
{
int returnNumber;
//int no = randomNumber(); //Some Random Number Generator Function , Lets Assume the cost of this function to be 0 for simplicity purpose
switch(randomNumber())
{
case 0: returnNumber = a+b; // costs 6 Operations , Case Check costs 1, assignment costs 1 and addition costs 4
break;
case 1: returnNumber = c+d; // Costs 6 Operations
break;
default: returnNumber = e; // costs 2 Operations
}
return returnNumber;
}
该函数的总成本是14个操作,是否有任何代码可以做同样的事情并且至少将此功能的成本降低1?
编辑1 新增switch语句中的break语句以及变量没有分配到randomNumber发生器功能
EDIT 2我碰到这个问题从我的一个朋友谁碰巧有在F2F面对这个问题,我想知道这个问题是否有解决方案,因为我还没有找到任何直到现在。
对于现代处理器这些都是单一操作 – P0W
如果这个随机数生成器比http://dilbert.com/strip/2001-10-25更好,那么调用它的成本将会使其他任何东西都变得渺茫。 –
您是否忘记了每个案例后的“break”陈述? –