主题:24点中的不可能组合
yaozheng
[专家分:28410] 发布于 2002-11-11 22:49:00
#include<stdio.h>
main()
{
int a[4],m,n,x,y,b,c,d,tt,gong;
float u,i,p;
for(m=1;m<14;m++)
for(n=1;n<14;n++)
for(x=1;x<14;x++)
for(y=1;y<14;y++){
tt=0;
for(b=0;b<4;b++)
for(c=0;c<4;c++)
for(d=0;d<4;d++)
{
if(b==0) u=m+n;
if(b==1) u=m-n;
if(b==2) u=m*n;
if(b==3) u=m/n;
if(c==0) i=u+x;
if(c==1) i=u-x;
if(c==2) i=u*x;
if(c==3) i=u/x;
if(d==0) p=i+y;
if(d==1) p=i-y;
if(d==2) p=i*y;
if(d==3) p=i/y;
if(p==24.0) tt=1;
}
if(tt==0){ printf("%d,%d,%d,%d\n",m,n,x,y); gong++;}
}
printf("%d\n",gong);
}
回复列表 (共10个回复)
沙发
我没有钱 [专家分:0] 发布于 2002-11-14 20:18:00
非常有意思!
如果加上注释就更好了!
板凳
NowCan [专家分:0] 发布于 2002-11-15 12:02:00
gong没有赋初值,严重错误!
3 楼
Ghost-mjw [专家分:130] 发布于 2002-11-16 18:32:00
这样的N重循环行吗?
4 楼
闻西 [专家分:0] 发布于 2002-11-21 10:21:00
此算法不错。
5 楼
wwwyyy [专家分:10] 发布于 2002-11-22 22:50:00
这末多的for(...)if()....晕!!!;
我不知道啥是24点能告诉我吗?
我想如果是求组合用递归写要省事些的;
6 楼
love加速器 [专家分:0] 发布于 2002-11-24 23:10:00
不明白耶.....
7 楼
jjj777888 [专家分:0] 发布于 2002-12-05 16:22:00
这是最好的算法吗
有没有别的方法?
8 楼
llm9178 [专家分:13400] 发布于 2003-06-08 01:37:00
此算法未考虑括号,有严重漏洞!
比如,用1,4,5,6是能够算出24点的。
我已经有一个比较完善的算24点程序放在 最新网友作品 里,大家可以免费使用。
9 楼
llm9178 [专家分:13400] 发布于 2003-07-07 22:53:00
《算24点》下载地址是:
http://www.programfan.com/down/24.zip
10 楼
undeadbird [专家分:2570] 发布于 2004-11-15 01:28:00
一般~~~~~~~~~~
我来回复