| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 913 人关注过本帖
标题:[求助]这个程序怎么写才可能更简便(时间复杂度低一些)
只看楼主 加入收藏
无玩过界
Rank: 1
等 级:新手上路
威 望:2
帖 子:246
专家分:0
注 册:2007-2-20
收藏
得分:0 
以下是引用jiangliangju在2007-3-18 17:49:46的发言:

#include"stdio.h"
#include"math.h"

int main()
{ int D,A,B,C,X,Z,Y,E,F=5,G=0;
for(A=1;A<=8;A++)
for(B=1;B<=9;B++)
for(C=1;C<=9;C++)
for(D=1;D<=9;D++)
for(E=1;E<=9;E++)
for(Y=1;Y<=9;Y++)
for(Z=1;Z<=9;Z++)

{ X=A+1;
if((A*10000+B*1000+C*100+D*10+E)+2*(D*100+5*10)==(X*10000+Y*1000+Z*100+D*10+E)&&
B!=E&&B!=F&&B!=X&&B!=Y&&B!=Z&&C!=E&&C!=F&&C!=X&&C!=Y&&C!=Z&&C!=B&&D!=C&&B!=D&&D!=E&&E!=F&&E!=G&&Y!=Z&&X!=Y&&X!=Z&&
D!=X&&D!=Y&&D!=Z&&E!=X&&E!=Y&&E!=Z&&E!=A&&A!=B&&A!=C&&A!=D&&A!=F&&A!=G&&A!=Y&&A!=Z&&F!=B&&X!=F)
printf("A=%d\tB=%d\tC=%d\tD=%d\tE=%d\tF=%d\tG=%d\tX=%d\tY=%d\tZ=%d\n",A,B,C,D,E,F,G,X,Y,Z);
}
system("pause");
}
我已经做出来了

这样写法,吓死人哦


2007-03-18 18:43
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
我觉得8楼的写的很好,虽然不是代码最简单的但是是算法最简单的,尤其是看出了F=5;G=0

2007-03-18 19:08
Ashley
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-3-1
收藏
得分:0 
以下是引用moonwalker在2007-3-18 17:58:26的发言:
我觉得只要判断DE+2×FG的低2位等于DE
然后再对其他几个满足条件的字母循环判断是否各不相同
这样大概能少一些步骤

这样,计算机编程还有什么意义呢?人再帮计算机继续判断一下,就又少几步了。

用回溯吧?


2007-03-18 22:28
快速回复:[求助]这个程序怎么写才可能更简便(时间复杂度低一些)
数据加载中...
 
   



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

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