回 帖 发 新 帖 刷新版面

主题:24点中的不可能组合

#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个回复)

沙发

                    非常有意思!
                          如果加上注释就更好了!

板凳

gong没有赋初值,严重错误!

3 楼

这样的N重循环行吗?

4 楼

此算法不错。

5 楼

这末多的for(...)if()....晕!!!;
我不知道啥是24点能告诉我吗?
我想如果是求组合用递归写要省事些的;

6 楼

不明白耶.....

7 楼

这是最好的算法吗
有没有别的方法?

8 楼

此算法未考虑括号,有严重漏洞!
比如,用1,4,5,6是能够算出24点的。

我已经有一个比较完善的算24点程序放在 最新网友作品 里,大家可以免费使用。

9 楼

《算24点》下载地址是:
    http://www.programfan.com/down/24.zip

10 楼

一般~~~~~~~~~~

我来回复

您尚未登录,请登录后再回复。点此登录或注册