当前位置: 代码迷 >> C语言 >> [讨论]多层循环的优化
  详细解决方案

[讨论]多层循环的优化

热度:295   发布时间:2007-01-23 10:43:44.0
以下是引用zengxz在2007-1-21 14:14:41的发言:

哥们,你弄反了吧?
大循环在外面,跨切循环的次数越多,效率反而低了呀,小弟愚钝,望明示。谢谢

me too,还请明示
----------------解决方案--------------------------------------------------------
int * float ==float 应该会慢吧
----------------解决方案--------------------------------------------------------

让指针指向这些变量 然后用指针来 完成 循环操作
这样能快些
因为指针用的是 地址


----------------解决方案--------------------------------------------------------

那有没有办法使得循环的层数减少呢?


----------------解决方案--------------------------------------------------------
if(50*a+20*b+10*c+5*d+2*e+f==100)
{
s=s+1;
printf("the %d is:%d ge wu mao,%d ge liang mao,%d ge yi mao,%d ge wu fen,%d ge liang fen,%d ge yi fen.\n",s,a,b,c,d,e,f);
}

改为
s=s+1;
printf("the %d is:%d ge wu mao,%d ge liang mao,%d ge yi mao,%d ge wu fen,%d ge liang fen,%d ge yi fen.\n",s,a,b,c,d,e,100-(50*a+20*b+10*c+5*d+2*e));

去掉f循环

[此贴子已经被作者于2007-1-24 21:11:10编辑过]


----------------解决方案--------------------------------------------------------
恩,可行
----------------解决方案--------------------------------------------------------

#include "stdio.h"
main()
{
int a,b,c,d,e,f,s=0;

for(a=0;a<=2;a++)
for(b=0;b<=5;b++)
for(c=0;c<=10;c++)
for(d=0;d<=20;d++)
for(e=0;e<=50;e++)
{
if((f=100-(50*a+20*b+10*c+5*d+2*e))>=0&&f<=100)
{
s=s+1;
printf("the %d is:%d ge wu mao,%d ge liang mao,%d geyi mao,%d ge wu fen,%d ge liang fen,%d ge yi fen.\n",s,a,b,c,d,e,f);
}
}
}


----------------解决方案--------------------------------------------------------
以下是引用cdmalcl在2007-1-24 21:45:40的发言:

#include "stdio.h"
main()
{
int a,b,c,d,e,f,s=0;

for(a=0;a<=2;a++)
for(b=0;b<=5;b++)
for(c=0;c<=10;c++)
for(d=0;d<=20;d++)
for(e=0;e<=50;e++)
{
if((f=100-(50*a+20*b+10*c+5*d+2*e))>=0&&f<=100)
{
s=s+1;
printf("the %d is:%d ge wu mao,%d ge liang mao,%d geyi mao,%d ge wu fen,%d ge liang fen,%d ge yi fen.\n",s,a,b,c,d,e,f);
}
}
}

这个好像更快!
----------------解决方案--------------------------------------------------------

能不能再进一步优化呢。。。


----------------解决方案--------------------------------------------------------
  相关解决方案