- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于24点戏的编程思路与基本算法1
关于24点游戏的编程思路与基本算法
设计思路:
在算24点时候,我的第一反应便是穷举法!在算24点时候,我的思路就是列出4个数字加减乘除的各种可能性,包括括号的算法。我们可以将表达式分成以下几种:首先我们将4个数设为a,b,c,d,,其中算术符号有+,-,*,/,。其中有效的表达式有a,ab-cd,等等。列出所有有效的表达式。其中我们用枚举类型将符号定义成数字常量,比如用1表示+,2表示-等。如下是我对穷举法的一种编程语言。在编程的头部要对变量做下定义。
在输入数字前我做了定义,因为题目规定是1-10内不相同的数字。所以我就想到了if的判断语句来写此句话。即if((a==b)||(a==c)||(a==d)||(b==c)||(b==d)||(c==d)||(a0)||(a10)||(b0)||(b10)||(c0)||(c10)||(d0)||(d10))则输入非法。当输入合法时,我就在想,4个数都有各自的排列,所以运用数学的排列组合来算的的,分别是A44=24种组合,打个比方,我入、、输入a,b,c,d,那么就有abdc,badc,bacd``````等24种不同的组合,在这里我就不一一列举,在源代码当中我会一一写在程序里。
在运算时,我开始想,得从括号分类起,有零括号的,一个括号的,两个括号的。
以下是表达式,当然,*并不是×,*只是符号的统称。
零个括号的:a*b*c*d。
一个括号的:(a * b * c) * d,a * (b * c) * d。
两个括号的:(a * b) * (c * d),(a * b) * c) * d,a * (b * c)) * d
接下来就是对每一种进行分析判断。
以上就是穷举法的基本实现算法
首先穷举的可行性问题。我把表达式如下分成三类:
1、 列出四个数的所有排序序列组合(共有A44=24种组合)。
2、 构筑一个函数,列出所有运算表达式。
3、 输入数据计算。
流程图:
输入四个数
输入四个数
是否满足条件?
是否满足条件?
否是
否
是
先进行24种组合的排列。
先进行24种组合的排列。
代入运算式中运算。能否输出24
代入运算式中运算。能否输出24?
否能
否
能
输出不能组成24输出结果
输出不能组成24
输出结果
源代码:
#includestdio.h
int main(void)
{
void jisuan(float x,float y,float z,float w);//声明函数
float a,b,c,d;
fanhui: //做标记
printf(请输入4个数据\n);
printf( 第一个数:);
scanf(%f,a);
printf( 第二个数:);
scanf(%f,b);
printf( 第三个数:);
scanf(%f,c);
printf( 第四个数:);
scanf(%f,d);
printf(输出所有算法如下:\n);
if((a0)||(a10)||(b0)||(b10)||(c0)||(c10)||(d0)||(d10)||(a==b)||(a==c)||(a==d)||(b==c)||(b==d)||(c==d))
{
printf(你输入的输入不对,重新输入\n);
goto fanhui;// 返回标记,重复输入
}
// 以下是a .b.c.d 的所有排列组合情况
jisuan(a,b,c,d); jisuan(a,b,d,c); jisuan(a,c,d,b);
jisuan(a,c,b,d); jisuan(a,d,b,c); jisuan(a,d,c,b);
jisuan(b,a,c,d); jisuan(b,a,d,c); jisuan(b,c,a,d);
jisuan(b,c,d,a); jisuan(b,d,c,a); jisuan(b,d,a,c);
jisuan(c,a,b,d); jisuan(c,a,d,b); jisuan(c,b,d,a);
jisuan(c,b,a,d); jisuan(c,d,a,b); jisuan(c,d,b,a);
jisuan(d,a,b,c); jisuan(d,a,c,b); jisuan(d,b,c,a);
jisuan(d,b,a,c); jisuan(d,c,a,b); jisuan(d,c,b,a);
return 0;
}
void jisuan(float x,float y,float z,float w) //运算表达式的所有情况
{
if (x+y+z+w==24) printf(%.0f+%.0f+%.0f+%.0f=24\n,x,y
您可能关注的文档
最近下载
- 第六章煤层气钻井完井工艺技术.ppt VIP
- WI-PM-004ALL100烧录器操作规范.doc VIP
- 2025年国企审计部内部招聘试题.pdf VIP
- 文稿传输otn原理及设备介绍.pptx VIP
- BS EN 50600-2-2-2019 信息技术.数据中心设施和基础设施.第2-2部分:供电和配电.pdf VIP
- 中医护理方案2017解读.pptx VIP
- 标准图集-08CJ17快速软帘卷门 透明分节门 滑升门 卷帘门.pdf VIP
- 驭胜s350及电路图n351第三阶段2013-11-13分动器.pdf VIP
- 2025年安全生产考试题库(林业行业安全规范)试题集.docx VIP
- 检验科质量与安全管理制度培训学习资料.pptx VIP
文档评论(0)