100解决方法

100
for(...)
{
      if(par   > =   n)
      {
            par=par%n;
      }
      if(array[par])
      {    
              if(array[par]
              {
                    .....
                }
      }
}
----------------------------------------------
for(...)
{
      if(array[par%n])
      {    
            if(array[par%n]
            {
                .....
              }
        }
}

//////////////////////////////////////////////
上述两段代码第一种情况减少了求余次数,肯定是比第二段代码快,但是如果程序中使用第一种情况,整体程序会比使用第二种的快4倍,请问为什么会有这么大的差别呢??谢谢


------解决方案--------------------
唉,智商有限
愣是没看懂两种方法是啥
惭愧
------解决方案--------------------
还要看编译器的优化程度

无法精确比较 没什么意义
------解决方案--------------------
具体快多少倍还要看看具体机器或者编译器,没有必要写成第2种情况那样,

也感觉这个问题意义不大。
------解决方案--------------------
up
------解决方案--------------------
...

------解决方案--------------------
mark
------解决方案--------------------
if(par > = n)
{
par=par%n;
}
4倍?
不明白。。。。
------解决方案--------------------
嘛意思?
------解决方案--------------------

------解决方案--------------------
第二个执行了两次求余运算,第一个有可能只做比较判断