用扑克牌计算24点

  • 题目
  • 答案
  • 注意
  • 参考

题目

答案

#include<stdio.h>float operation(float a,float b,char c)
{switch(c){case '+':return a+b;case '-':return a-b;case '*':return a*b;case '/':return a/b;}
}
int number(float a[],char c[])
{float temp1=0,temp2=0,sum=0;int i,j,k,l;for(i=0;i<4;i++)for(j=0;j<4;j++)for(k=0;k<4;k++)for(l=0;l<4;l++){if(i!=j&&i!=k&&i!=l&&j!=k&&j!=l&&k!=l){temp1=operation(a[i],a[j],c[0]);temp2=operation(temp1,a[k],c[1]);sum=operation(temp2,a[l],c[2]);if(sum==24) {printf("((%.0f%c%.0f)%c%.0f)%c%.0f",a[i],c[0],a[j],c[1],a[k],c[2],a[l]);return 1;}//((1 2) 3) 4temp1=operation(a[j],a[k],c[1]);temp2=operation(a[i],temp1,c[0]);sum=operation(temp2,a[l],c[2]);if(sum==24) {printf("(%.0f%c(%.0f%c%.0f))%c%.0f",a[i],c[0],a[j],c[1],a[k],c[2],a[l]);return 1;}//(1 (2 3)) 4temp1=operation(a[i],a[j],c[0]);temp2=operation(a[k],a[l],c[2]);sum=operation(temp1,temp2,c[1]);if(sum==24) {printf("(%.0f%c%.0f)%c(%.0f%c%.0f)",a[i],c[0],a[j],c[1],a[k],c[2],a[l]);return 1;}//(1 2)(3 4)temp1=operation(a[j],a[k],c[1]);temp2=operation(temp1,a[l],c[2]);sum=operation(a[i],temp2,c[0]);if(sum==24) {printf("%.0f%c((%.0f%c%.0f)%c%.0f)",a[i],c[0],a[j],c[1],a[k],c[2],a[l]);return 1;}//1 ((2 3) 4)temp1=operation(a[k],a[l],c[2]);temp2=operation(a[j],temp1,c[1]);sum=operation(a[i],temp2,c[0]);if(sum==24)  {printf("%.0f%c(%.0f%c(%.0f%c%.0f))",a[i],c[0],a[j],c[1],a[k],c[2],a[l]);return 1;}//1 (2 (3 4))}}return 0;
}
int main()
{float num[4]={0};int i,j,k,l=0;for(i=0;i<4;i++)scanf("%f",&num[i]);char a[6]="+-*/";char icon[64][5]={0};for(i=0;i<4;i++)for(j=0;j<4;j++)for(k=0;k<4;k++){icon[l][0]=a[i];icon[l][1]=a[j];icon[l][2]=a[k];l++;}for(i=0;i<64;i++)if(number(num,icon[i])) return 0;printf("-1");
}

注意

不要像我一样,把!=写成了=!,因为这事儿我找了2个小时的bug,呜呜呜

参考

https://blog.csdn.net/strcpy_s/article/details/103789851

用扑克牌计算24点(c语言)相关推荐

  1. c语言计算24游戏,C语言解24点游戏程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 前几天在微博上看到24点的游戏,6 6 6 10.算了很久是在算不出来,最后我想我何不写一个小程序解决它?说做就做,我刚开始的想法很简单,就是列举4个数的 ...

  2. PTA 用扑克牌计算24点 (25 分)

    一副扑克牌的每张牌表示一个数(J.Q.K 分别表示 11.12.13,两个司令都表示 6).任取4 张牌,即得到 4 个 1~13 的数,请添加运算符(规定为加+ 减- 乘* 除/ 四种)使之成为一个 ...

  3. 使用Scala语言开发GUI界面的计算24点的游戏应用

    今年开始学习Scala语言,对它的强大和精妙叹为观止,同时也深深感到,要熟练掌握这门语言,还必须克服很多艰难险阻. 这时,我就在想,如果能有一种方式,通过实际的应用实例,以寓教于乐的方式,引导我们逐步 ...

  4. c语言算24点答案,C语言-纸牌计算24点小游戏

    C语言实现纸牌计算24点小游戏 利用系统时间设定随机种子生成4个随机数,并对4个数字之间的运算次序以及运算符号进行枚举,从而计算判断是否能得出24,以达到程序目的.程序主要功能已完成,目前还有部分细节 ...

  5. C语言-纸牌计算24点小游戏

    C语言实现纸牌计算24点小游戏 利用系统时间设定随机种子生成4个随机数,并对4个数字之间的运算次序以及运算符号进行枚举,从而计算判断是否能得出24,以达到程序目的.程序主要功能已完成,目前还有部分细节 ...

  6. c#和javascript分别轻松实现计算24点

    24点游戏介绍:给出4个1-9之间的整数(ms我当年玩的时候是用扑克牌),其中每个数字必须且只用一次:任意使用+-*/ ( ),构造出一个表达式,使得最终结果为24,这就是常见的算24点的游戏(我的老 ...

  7. 1224 红魔馆的纸牌游戏 (计算24点,dfs)

    Description 红魔馆的蕾米莉亚大小姐一天发现人类有一种叫做24点的游戏,于是就带着一副不知哪里弄来的扑克牌到图书馆找帕秋莉玩 24点游戏的规则:从一副牌中随机抽取4张牌,牌的点数为1到13之 ...

  8. feedback算法C语言,Learner Reviews Feedback for 计算导论与C语言基础 Course | Coursera

    1 - 25 sur 374 Avis pour 计算导论与C语言基础 Filled StarFilled StarFilled StarStarStar par Wan K• 16 août 201 ...

  9. 计算24点游戏精化算法剖析

    很多人都玩过这个数学味儿很浓的益智游戏:抽出4张扑克牌,牌上的点数代表四个数字,花牌视为1点(有的把J.Q.K分别视为11.12.13点),玩家中谁最先运用加减乘除四则运算,由这四个数计算出24,谁就 ...

最新文章

  1. KlayGE中的FXAA已经完成
  2. Java中善用通用的枚举对象类实现代码业务的判断
  3. 282天,汇付天下“冲上云霄”
  4. html+css+javascript之间的关系与作用
  5. 针对ie9写特殊的样式
  6. htcvr设备计算机配置,准备买HTC VIVE了?来测试一下你的电脑配置够不够
  7. 常用的stm32库函数
  8. Linux下通配符总结
  9. 鲲鹏性能优化十板斧——鲲鹏处理器NUMA简介与性能调优五步法
  10. 补习系列(21)-SpringBoot初始化之7招式
  11. win8经典开始菜单计算机,Win8.1/win8开始菜单工具大盘点
  12. 使用shell编写九九乘法表,mysql分库备份
  13. 安装idea(最新版IntelliJ IDEA)编译器(详细到每步)
  14. 【Swing 3】布局管理器与简单的聊天界面
  15. 如何求两个数的最小公倍数c语言,C程序寻找两个数字的最小公倍数(LCM)
  16. 换一种视角看《百度SEM竞价推广》
  17. Android 桌面小组件 AppWidgetProvider
  18. 苹果IOS模拟器电脑版用哪个好 逍遥模拟器玩部分苹果账号互通
  19. python求解不等式组可行域_二元一次不等式(组)和可行域
  20. net程序员面试题,基本上是基础概念题

热门文章

  1. [文本纠错] pycorrector框架测试
  2. Python读取txt文件,将xxx=111,yyy=222转换为json或字典格式
  3. vue-pdf pdfjs worker-loader 签章 移动端展示 发布不同域 踩坑
  4. 2003沈阳航空学院计算机分数线,沈阳航空航天大学
  5. 牛客小白月赛24 D 牛妹吃豆子(二维差分+前缀和)
  6. 久戴不痛的蓝牙耳机有哪些?公认佩戴最舒适的无线蓝牙耳机推荐
  7. 如何加声调口诀_小学拼音声调的口诀是什么??
  8. wms系统与物联网发展趋势密切相关
  9. Prometheus监控实战之Prometheus Server数据管理
  10. 12月7日即将讲解激发态与非绝热分子动力学