c语言实现24点课程设计,完美起航-数据结构课程设计(一)---24点_何为浮云的博客-程序员宅基地

技术标签: c语言实现24点课程设计  

#include

using namespace std;

int flag=0;

int Calculate(float x,float y,float z,float w);//a b c d的所有排列组合情况

int check(int *a,int *b,int *c,int *d);

int main()

{

int a,b,c,d;

m_ret: //做标记

cout<

cout<

cin>>a;

cout<

cin>>b;

cout<

cin>>c;

cout<

cin>>d;

cout<

if ((a<0)||(a>13)||(b<0)||(b>13)||(c<0)||(c>13)||(d<0)||(d>13))

{

cout<

goto m_ret;

} // 返回标记,重复输入

if(check(&a,&b,&c,&d)==0)//分成五种情况,都不想等,有两个相等(两种),有三个相等,有四个相等 ,并且把相等的往后放

{

Calculate(a,b,c,d); Calculate(a,b,d,c); Calculate(a,c,d,b);

Calculate(a,c,b,d); Calculate(a,d,b,c); Calculate(a,d,c,b);

Calculate(b,a,c,d); Calculate(b,a,d,c); Calculate(b,c,a,d);

Calculate(b,c,d,a); Calculate(b,d,c,a); Calculate(b,d,a,c);

Calculate(c,a,b,d); Calculate(c,a,d,b); Calculate(c,b,d,a);

Calculate(c,b,a,d); Calculate(c,d,a,b); Calculate(c,d,b,a);

Calculate(d,a,b,c); Calculate(d,a,c,b); Calculate(d,b,c,a);

Calculate(d,b,a,c); Calculate(d,c,a,b); Calculate(d,c,b,a);

}

else if(check(&a,&b,&c,&d)==1) //只有一组一样的,即交换后的c和d

{

Calculate(a,b,c,d);

Calculate(a,c,d,b);

Calculate(a,c,b,d); Calculate(a,d,c,b);

Calculate(b,a,c,d); Calculate(b,c,a,d);

Calculate(b,c,d,a);

Calculate(c,a,b,d); Calculate(c,a,d,b); Calculate(c,b,d,a);

Calculate(c,b,a,d); Calculate(c,d,a,b); Calculate(c,d,b,a);

}

else if(check(&a,&b,&c,&d)==2) //有两组一样的,即交换后的a和b c和d

{

Calculate(a,b,c,d); Calculate(a,c,d,b); Calculate(a,c,b,d);

Calculate(c,a,b,d); Calculate(c,a,d,b); Calculate(c,d,a,b);

}

else if(check(&a,&b,&c,&d)==3)

{

Calculate(a,b,c,d);Calculate(b,a,c,d);

Calculate(c,b,a,d);Calculate(d,b,c,a);

}

else

Calculate(a,b,c,d);

if(flag==0)

cout<

else

cout<

return 0;

}

int Calculate(float x,float y,float z,float w) //运算表达式的所有情况,里面的x,y,z,w位置相对固定,所以所有情况,靠主函数里面对他们进行排序

{

if (x+y+z+w==24) {cout<

else if (x+y+z-w==24) {cout<

else if ((x+y)*(z+w)==24) {cout<

else if ((x-y)*(z+w)==24) {cout<

else if ((x-y)*(z-w)==24) {cout<

else if ((x+y+z)*w==24) {cout<

else if ((x-y-z)*w==24) {cout<

else if ((x+y-z)*w==24) {cout<

else if ((x-y+z)*w==24) {cout<

else if ((x*y*z)/w==24) {cout<

else if ((x*y)*(z+w)==24) {cout<

else if ((x*y)*(z-w)==24) {cout<

else if ((x*y)*z-w==24) {cout<

else if ((x*y)*z+w==24) {cout<

else if (x*y*z*w==24) {cout<

else if ((x+y)+(z/w)==24) {cout<

else if ((x+y)*(z/w)==24) {cout<

else if ((x*y)+z+w==24) {cout<

else if ((x*y)+z-w==24) {cout<

else if ((x*y)-(z/w)==24) {cout<

else if ((x*y)+(z/w)==24) {cout<

else if ((x*y)-z-w==24) {cout<

else if ((x*y)+(z*w)==24) {cout<

else if ((x*y)-(z*w)==24) {cout<

else if ((x*y)/(z*w)==24) {cout<

else if ((x*y)/(z-w)==24) {cout<

else if ((x*y)/(z+w)==24) {cout<

else if ((x*y+z)/w==24) {cout<

else if ((x*y-z)/w==24) {cout<

else if ((x/y+z)/w==24) {cout<

else if ((x/y-z)/w==24) {cout<

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42349126/article/details/117212719

智能推荐

CPU检测脚本_"nowtime=`date \"+%y-%m-%d__%h:%m:%s\"`啥意思"-程序员宅基地

#!/bin/bashnowtime=`date "+%Y-%m-%d__%H:%M:%S"`cpu_load=`cat /proc/loadavg | cut -d ' ' -f 1-3`temp=(`cat /sys/class/thermal/thermal_zone0/temp | awk '{printf("%.2f℃", $1 / 1000)}'`)eval `head -n..._"nowtime=`date \"+%y-%m-%d__%h:%m:%s\"`啥意思"

springboot项目,如何根据环境,使用不同的yml文件_bootstrap.yml 判断条件-程序员宅基地

springboot如何使用多个环境配置文件前言新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入前言boot..._bootstrap.yml 判断条件

单选框、复选框RadioButton,checkbox-程序员宅基地

input控件 name语法:1、type: 当 type="radio" 时,控件为单选框 当 type="checkbox" 时,控件为复选框2、value:提交数据到服务器的值(后台程序PHP使用)3、name:为控件命名,以备后台程序 ASP、PHP 使用4、checked:当设置 checked="checked" 时,该选项被默认选中

LeetCode第20题 有效的括号(Valid Parentheses)-程序员宅基地

文章目录题目地址题目描述代码实现题目地址题目地址https://leetcode-cn.com/problems/valid-parentheses/题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:...

windows service 2019安装mysql5.7_windows2019 安装mysql5.7 报错_prajnaY的博客-程序员宅基地

1、mysql下载压缩包。https://downloads.mysql.com/archives/community/2、解压文件到安装位置3、配置环境变量新建用户变量变量名:MYSQL变量值:mysql解压位置修改用户Path变量:%MYSQL%bin4、新建my.ini配置文件在mysql文件夹中创建my.ini文件配置如下[mysql]# 设置mysql客户端默认字符集default-chara..._windows2019 安装mysql5.7 报错

linux基础命令(一)_ps -ef | grep -c "ssh-程序员宅基地

linux命令-持续更新_ps -ef | grep -c "ssh

随便推点

安装oracle数据库所需软件包,【OH】Oracle软件安装需要的软件包(官方文档)_常非一的博客-程序员宅基地

1安装12c1.1Table 3 x86-64 Supported Linux 7 Operating System RequirementsItemRequirementsSSH RequirementEnsure that OpenSSH is installed on your servers. OpenSSH is the required SSH software.Oracle Linu..._oracle libaio32位资源包

Linux下Vim文本编辑使用技巧_vim编辑文件如何换行-程序员宅基地

本文主要介绍Linux下Vim常见的文本编辑技巧,供大家参考_vim编辑文件如何换行

SDUT-3402-程序员宅基地

归并求逆序数! 在归并排序的过程中,我们可以求出一个数列的逆序数。代码1:#includeusing namespace std;int a[100001];long long sum;void Merge(int low,int mid,int high){ int b[100001]; int i=low,j=mid+1,k=low; while

启动Eclipse时,弹出JVM terminated. Exit code=127..错误的解决方案-程序员宅基地

在Linux环境下,启动Eclipse,会弹出并报如下的错误,且不能启动该工具JVM terminated. Exit code=127/eclipse/jdk1.7.0_71/bin/java-Dosgi.requiredJavaVersion=1.6-XX:MaxPermSize=256m-Xms40m-Xmx512m-jar /root/source1/eclipse//plugins/..._jvm exit code=127

n1Linux分辨率,看看诺基亚曾经的六款平板电脑 N1不是第一_A秦福超15837172289的博客-程序员宅基地

(编译:Mangofish)虽然已经正式退出智能手机市场,但是诺基亚最近却凭借旗下第一款Android平板电脑——诺基亚N1而备受关注。值得一提的是,诺基亚应该算得上是平板电脑的开山鼻祖,但后来居上的苹果才将平板电脑真正发扬光大。其实N1并不是诺基亚第一款平板电脑,下面我们就为大家盘点了诺基亚曾经推出的6款平板电脑,一起来看看吧!诺基亚M510诺基亚M510的诞生时间比初代iPad还要早九年,但仅..._n1分辨率

推荐文章

热门文章

相关标签