标题:[讨论]多层循环的优化
只看楼主
penggf
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-1-19
得分:0 
以下是引用zengxz在2007-1-21 14:14:41的发言:

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

me too,还请明示

2007-01-23 10:43
SNAKEQX
Rank: 1
等 级:新手上路
帖 子:112
专家分:3
注 册:2006-4-11
得分:0 
int * float ==float 应该会慢吧
2007-01-23 14:42
ispig
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-1-23
得分:0 

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

2007-01-24 15:28
lzf0112
Rank: 1
等 级:新手上路
帖 子:244
专家分:0
注 册:2006-4-9
得分:0 

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

2007-01-24 21:04
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
得分:0 
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编辑过]

2007-01-24 21:09
lzf0112
Rank: 1
等 级:新手上路
帖 子:244
专家分:0
注 册:2006-4-9
得分:0 
恩,可行
2007-01-24 21:31
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
得分:0 

#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);
}
}
}

2007-01-24 21:45
aj0901
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-10-19
得分:0 
以下是引用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);
}
}
}

这个好像更快!

2007-01-25 09:21
lzf0112
Rank: 1
等 级:新手上路
帖 子:244
专家分:0
注 册:2006-4-9
得分:0 

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

2007-01-25 21:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-117014-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.328559 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved