社区
C语言
帖子详情
一个关于“二十四点”的问题
gordon_dengcn
2002-07-14 09:14:06
大家好:
一个小问题靠靠大家:3,3,8,8,请算出24。方法越多越好!
顺便,有没有人有“二十四点游戏”算法的源程序,请告诉我下载网址。
我的网站:http://slzx.boy.net.cn 欢迎访问!
谢谢!
...全文
104
5
打赏
收藏
一个关于“二十四点”的问题
大家好: 一个小问题靠靠大家:3,3,8,8,请算出24。方法越多越好! 顺便,有没有人有“二十四点游戏”算法的源程序,请告诉我下载网址。 我的网站:http://slzx.boy.net.cn 欢迎访问! 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhi_chong
2002-07-14
打赏
举报
回复
请问 qianli918(千里马),你的程序中的err是有什么用的???
zhi_chong
2002-07-14
打赏
举报
回复
用穷举法就可以了吧
qianli918
2002-07-14
打赏
举报
回复
wobiande
#include<stdio.h>
#include<ctype.h>
#include<math.h>
#include<string.h>
#include<iostream.h>
const char op[]="+-*/";
const float err=-0.1234;
const N=50;
int K;
int s=0;
const m=10;
char ct[m][N];
int n0;
void make(float st[],int n)
{int i,j,t;char x0[N],y0[N],z0[N];//1[
float x,y,z;
for(i=0;i<n0;i++)
if (st[i]!=err)
{x=st[i];st[i]=err;//2[
strcpy(x0,ct[i]);
for(j=0;j<n0;j++)
if(st[j]!=err)
{y=st[j];st[j]=err;strcpy(y0,ct[j]);//3[
for(t=0;t<4;t++)
{z=err; //4[
switch (op[t])
{case '+':if(x<=y)z=x+y;break;//5[
case '-':z=x-y;break;
case '*':if(x<=y)z=x*y;break;
case '/':if(fabs(y)>0.01)z=x/y;break;
} //5]
if(z!=err)
{sprintf(z0,"%s%c%s",x0,op[t],y0);//6[
if(n!=2)
{st[i]=z; //7[
sprintf(ct[i],"(%s)",z0);
make(st,n-1);
st[i]=err;strcpy(ct[i],x0);}//7]
else
if(fabs(z-K)<0.001){s=1;throw z0;}
//printf("第%d组解:%s=%d\n",++s,z0,K);
}//6]
}//4]
st[j]=y; }//3]
st[i]=x;}//2]
}//1]
void main()
{int i;float st[m];char c;
printf("此程序用n个数通过加减乘除算你所要的结果\n");
do{
do {printf("请输入n:");cin>>n0;}while (n0<2);
printf("\n请输入你所需要的结果:");cin>>K;
printf("\n请输入%d个数:\n",n0);s=0;
for(i=0;i<n0;i++)
{cin>>st[i];
sprintf(ct[i],"%d",int(st[i]));
}
try{make(st,n0);}
catch (char *z0)
{printf("%s=%d\n",z0,K);}
if(!s)printf("对不起,此题无解!\n");
printf("继续吗(y/n)?");
while((c=toupper(getchar()))!='Y'&&c!='N');
}while (c=='Y');
}
boodweb
2002-07-14
打赏
举报
回复
我的网站上有一个:
http://qhb.363.net
自制软件里
atlantis13579
2002-07-14
打赏
举报
回复
8/(3-8/3)
Spring框架教程,跟老杜从零学spring6入门到高级
本套Spring教程与其他Spring教程的区别可总结为以下11点:第一点:手写Spring框架第二点:手写组件扫描第三点:依赖倒置原则DIP第四点:CGLIB动态代理代码实现第五点:代码演示事务传播行为第六点:代码演示事务...
【编程|
二十四点
】关于编程解决
二十四点
的两种思路
这是
一个
关于
二十四点
的软件。属于典型的先有目的再有初衷的软件。 在此之前我倒是写过
一个
解数独的软件。但那个的核心代码部分毕竟是抄袭的。这次是觉得对自己更有信心,也是想就此考验一下最近的编程学习,因而,...
关于24点
问题
解法
关于24点
问题
解法 先看题目: 给出4个小于10个正整数,你可以使用加减乘除4种运算以及括号把这4个数连接起来得到
一个
表达式。现在的
问题
是,是否存在一种方式使得得到的表达式的结果等于24。 这里加减乘除以及括号的...
计算24点
问题
[-] 递归方式递归方式的次数分析后缀表达式方法后缀表达式方法的一些细节后缀表达式方法的数值分析计算10以内1到10取4个数字用来算24点...用4张扑克牌上的点数算24点是
一个
经典的游戏了。一般要求只允许使用加减乘除
24点游戏(python)
使用加减乘除,第
一个
能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决24点游戏。 2.基本要求: 随机生成4个代表扑克牌牌面的数字字母,程序自动列出所有可能算出24的表达式,用擅长...
C语言
69,368
社区成员
243,081
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章