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

一个简单有关问题的效率思考

2012-02-26 
一个简单问题的效率思考百钱买百鸡问题,请高手指教.#includestdio.hvoidmain(){intcock,hen,chicken//

一个简单问题的效率思考
百钱买百鸡问题,请高手指教.
#include   <stdio.h>
void   main()
{
    int   cock,hen,chicken;       //   如果我多定义2个变量i=100/2,j=100/1.5
    for(cock=1;cock <100/2;cock++)  
/*   这里循环的时候是不是每次都要处理   100/2   ?   cock <100/2   改成   cock <i   是不是效率要高些?   */                                                              
    {
        for(hen=1;hen <100/1.5;hen++)
/*   这里循环的时候是不是每次也都要处理   100/1.5   ?   hen <100/1.5   改成   cock <j   是不是效率要高些?   */    
            {
for(chicken=1;chicken <100;chicken++)  
    {
        if(cock+hen+chicken==100   &&cock*2+hen*1.5+chicken*0.5==100)
        printf( "公鸡%d只,母鸡%d只,小鸡%d只.\n ",cock,hen,chicken);
    }
            }
    }
}

[解决办法]
效率是一样的
因为 100/2 和 100/1.5 都是常数,因此在编译期就已算好了,不会在每次循环时再计算.
[解决办法]
你的两个特例, 一般编译器都会自动给你优化.

不过, 先计算循环条件, 总是个不坏的主意:))

热点排行