首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

100解决方法

2012-02-04 
100for(...){if(par n){parpar%n}if(array[par]){if(array[par]{.....}}}---------------------------

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倍?
不明白。。。。
[解决办法]
嘛意思?
[解决办法]

[解决办法]
第二个执行了两次求余运算,第一个有可能只做比较判断

热点排行