一个简单问题的效率思考

savior_lee 2007-04-25 08:45:14
百钱买百鸡问题,请高手指教.
#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);
}
}
}
}
...全文
208 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
savior_lee 2007-04-25
  • 打赏
  • 举报
回复
暂时清楚了,不过细节以后再慢慢深入吧,我是初学者.
谢谢你们. ^_^
lightnut 2007-04-25
  • 打赏
  • 举报
回复
你的两个特例, 一般编译器都会自动给你优化.

不过, 先计算循环条件, 总是个不坏的主意:))
deng2000 2007-04-25
  • 打赏
  • 举报
回复
效率是一样的
因为 100/2 和 100/1.5 都是常数,因此在编译期就已算好了,不会在每次循环时再计算.
savior_lee 2007-04-25
  • 打赏
  • 举报
回复
请看清再作答 谢谢 !
VCLIFE 2007-04-25
  • 打赏
  • 举报
回复
循环越少效率越高喽

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧