POJ 3983:快算24
| Time Limit: 1000MS | Memory Limit: 65536K | |
| Total Submissions: 4791 | Accepted: 2930 |
Description
Input
Output
Sample Input
5 5 1 5
Sample Output
5*(5-(1/5))
三年前,大一的时候用C语言写的。一晃三年已过,我却没做多少题。没记错的话,当时暴力的时候,写的这叫一个累。后来在discuss中看到,这道题的测试用例只有给出的那一个,所以只需输出5*(5-(1/5))即可。。。。。。
反正暴力的话就一定要写下去。
也还可以暴力+ - * /,一共就三个位置。之后就是暴力括号的事情。
代码:
#include<stdio.h>
#include<stdlib.h>
main ()
{
int a,b,c,d,e,f,g,h,i,j,k,l;
double m,n;
while(scanf("%d %d %d %d",&a,&b,&c,&d)==4){
e=a+b;
f=c+d;
g=a-b;
h=c-d;
i=a*b;
j=c*d;
m=(double)a/b;
n=(double)c/d;
if(e+f==24)
printf("%d+%d+%d+%d\n",a,b,c,d);
if(e*f==24)
printf("(%d+%d)*(%d+%d)\n",a,b,c,d);
if(e+h==24)
printf("%d+%d+%d-%d\n",a,b,c,d);
if(e-h==24)
printf("%d+%d-%d+%d\n",a,b,c,d);
if(e*h==24)
printf("(%d+%d)*(%d-%d)\n",a,b,c,d);
if(g+f==24)
printf("%d-%d+%d+%d\n",a,b,c,d);
if(g*f==24)
printf("(%d-%d)*(%d+%d)\n",a,b,c,d);
if(g*h==24)
printf("(%d-%d)*(%d-%d)\n",a,b,c,d);
if(i+f==24)
printf("%d*%d+%d+%d\n",a,b,c,d);
if(i-f==24)
printf("%d*%d-%d-%d\n",a,b,c,d);
if(i*f==24)
printf("%d*%d*(%d+%d)\n",a,b,c,d);
if(f!=0&&i/f==24)
printf("%d*%d/(%d+%d)\n",a,b,c,d);
if(i+h==24)
printf("%d*%d+%d-%d\n",a,b,c,d);
if(i-h==24)
printf("%d*%d-%d+%d\n",a,b,c,d);
if(i*h==24)
printf("%d*%d*(%d-%d)\n",a,b,c,d);
if(h!=0&&i/h==24)
printf("%d*%d/(%d-%d)\n",a,b,c,d);
if(e+j==24)
printf("%d+%d+%d*%d\n",a,b,c,d);
if(e*j==24)
printf("(%d+%d)*%d*%d\n",a,b,c,d);
if(g+j==24)
printf("%d-%d+%d*%d\n",a,b,c,d);
if(g*j==24)
printf("(%d-%d)*%d*%d\n",a,b,c,d);
if(i+j==24)
printf("%d*%d+%d*%d\n",a,b,c,d);
if(i-j==24)
printf("%d*%d-%d*%d\n",a,b,c,d);
if(i*j==24)
printf("%d*%d*%d*%d\n",a,b,c,d);
if(j!=0&&i/j==24)
printf("%d*%d/(%d*%d)\n",a,b,c,d);
if(e+n==24)
printf("%d+%d+(%d/%d)\n",a,b,c,d);
if(d!=0&&(double)(e*c)/d==24)
printf("(%d+%d)*%d/%d\n",a,b,c,d);
if(c!=0&&(double)(e*d)/c==24)
printf("(%d+%d)/(%d/%d)\n",a,b,c,d);
if(d!=0&&(double)(g*c)/d==24)
printf("(%d-%d)*%d/%d\n",a,b,c,d);
if(c!=0&&(double)(g*d)/c==24)
printf("(%d-%d)/(%d/%d)\n",a,b,c,d);
if(i+n==24)
printf("%d*%d+%d/%d\n",a,b,c,d);
if(i-n==24)
printf("%d*%d-%d/%d\n",a,b,c,d);
if(d!=0&&(double)(i*c)/d==24)
printf("%d*%d*%d/%d\n",a,b,c,d);
if(c!=0&&(double)(i*d)/c==24)
printf("%d*%d/(%d/%d)\n",a,b,c,d);
if(m+f==24)
printf("%d/%d+%d+%d\n",a,b,c,d);
if(b!=0&&(double)(a*f)/b==24)
printf("%d/%d*(%d+%d)\n",a,b,c,d);
if(b!=0&&(double)(a*h)/b==24)
printf("%d/%d*(%d-%d)\n",a,b,c,d);
if(m+j==24)
printf("%d/%d+%d*%d\n",a,b,c,d);
if(b!=0&&(double)(a*j)/b==24)
printf("%d/%d*%d*%d\n",a,b,c,d);
if(a*c/(b*d)==24)
printf("%d/%d*%d/%d\n",a,b,c,d);
if(a*(b+c+d)==24)
printf("%d*(%d+%d+%d)\n",a,b,c,d);
if(a*(b+c-d)==24)
printf("%d*(%d+%d-%d)\n",a,b,c,d);
if(a+((b+c)*d)==24)
printf("%d+(%d+%d)*%d\n",a,b,c,d);
if(a*d*(b+c)==24)
printf("%d*(%d+%d)*%d\n",a,b,c,d);
if(a+(double)(b+c)/d==24)
printf("%d+(%d+%d)/%d\n",a,b,c,d);
if((double)(a*(b+c))/d==24)
printf("%d*(%d+%d)/%d\n",a,b,c,d);
if((double)(a*d)/(b+c)==24)
printf("%d/((%d+%d)/%d)\n",a,b,c,d);
if(a*(b-c+d)==24)
printf("%d*(%d-%d+%d)\n",a,b,c,d);
if(a*(b-c-d)==24)
printf("%d*(%d-%d-%d)\n",a,b,c,d);
if(a+(b-c)*d==24)
printf("%d+(%d-%d)*%d\n",a,b,c,d);
if(a-(b-c)*d==24)
printf("%d-(%d-%d)*%d\n",a,b,c,d);
if(a*(b-c)*d==24)
printf("%d*(%d-%d)*%d\n",a,b,c,d);
if((double)(a*(b-c))/d==24)
printf("%d*(%d-%d)/%d\n",a,b,c,d);
if((double)(a*d)/(b-c)==24)
printf("%d/((%d-%d)/%d)\n",a,b,c,d);
if(a+(b*c)+d==24)
printf("%d+%d*%d+%d\n",a,b,c,d);
if(a*(b*c+d)==24)
printf("%d*(%d*%d+%d)\n",a,b,c,d);
if(a+b*c-d==24)
printf("%d+%d*%d-%d\n",a,b,c,d);
if(a*(b*c-d)==24)
printf("%d*(%d*%d-%d)\n",a,b,c,d);
if(a+b*c*d==24)
printf("%d+%d*%d*%d\n",a,b,c,d);
if(a+(double)(b*c)/d==24)
printf("%d+%d*%d/%d\n",a,b,c,d);
if((double)(a*d)/(b*c)==24)
printf("%d/(%d*%d/%d)\n",a,b,c,d);
if((double)(b)/c+a+d==24)
printf("%d+%d/%d+%d\n",a,b,c,d);
if(a*d+(double)(a*b)/c==24)
printf("%d*((%d/%d)+%d)\n",a,b,c,d);
if((double)(a*b)/c-a*d==24)
printf("%d*((%d/%d)-%d)\n",a,b,c,d);
if((double)(a*c)/(b-c*d)==24)
printf("%d/((%d/%d)-%d)\n",a,b,c,d);
if(a+(double)(b*d)/c==24)
printf("%d+%d/%d*%d\n",a,b,c,d);
if((double)(a*b*d)/c==24)
printf("%d*%d/%d*%d\n",a,b,c,d);
if((double)(a*c)/(b*d)==24)
printf("%d/(%d/%d*%d)\n",a,b,c,d);
if(((double)(a*b)/c)/d==24)
printf("%d*%d/%d/%d\n",a,b,c,d);
if((double)(a*c*d)/b==24)
printf("%d/(%d/%d/%d)\n",a,b,c,d);
if(a+b*(c+d)==24)
printf("%d+%d*(%d+%d)\n",a,b,c,d);
if((double)(a*(c+d))/b==24)
printf("%d/(%d/(%d+%d))\n",a,b,c,d);
if(a+b*(c-d)==24)
printf("%d+%d*(%d-%d)\n",a,b,c,d);
if(a-b*(c-d)==24)
printf("%d-%d*(%d-%d)\n",a,b,c,d);
if(a-b/(double)(c-d)==24)
printf("%d-%d/(%d-%d)\n",a,b,c,d);
if((double)(a*(c-d))/b==24)
printf("%d/(%d/(%d-%d))\n",a,b,c,d);
if(a*(b+(c*d))==24)
printf("%d*(%d+%d*%d)\n",a,b,c,d);
if(a*(b-c*d)==24)
printf("%d*(%d-%d*%d)\n",a,b,c,d);
if((double)(a*c*d)/b==24)
printf("%d/(%d/(%d*%d))\n",a,b,c,d);
if(a*b+(double)(a*c)/d==24)
printf("%d*(%d+%d/%d)\n",a,b,c,d);
if(a*b-(double)(a*c)/d==24)
printf("%d*(%d-(%d/%d))\n",a,b,c,d);
if((double)(a*d)/(b*d-c)==24)
printf("%d/(%d-(%d/%d))\n",a,b,c,d);
if(a+(double)(b*d)/c==24)
printf("%d+(%d/(%d/%d))\n",a,b,c,d);
if((double)(a*c)/(b*d)==24)
printf("%d/(%d/(%d/%d))\n",a,b,c,d);
if((a+b+c)*d==24)
printf("(%d+%d+%d)*%d\n",a,b,c,d);
if((double)(a+b+c)/d==24)
printf("(%d+%d+%d)/%d\n",a,b,c,d);
if((a+b-c)*d==24)
printf("(%d+%d-%d)*%d\n",a,b,c,d);
if((double)(a+b-c)/d==24)
printf("(%d+%d-%d)/%d\n",a,b,c,d);
if((a+b)*c+d==24)
printf("(%d+%d)*%d+%d\n",a,b,c,d);
if((a+b)*c-d==24)
printf("(%d+%d)*%d-%d\n",a,b,c,d);
if((double)(a+b)/c+d==24)
printf("(%d+%d)/%d+%d\n",a,b,c,d);
if((double)(a+b)/c-d==24)
printf("(%d+%d)/%d-%d\n",a,b,c,d);
if(((a+b)*d)/(double)(c)==24)
printf("(%d+%d)/%d*%d\n",a,b,c,d);
if((a-b+c)*d==24)
printf("(%d-%d+%d)*%d\n",a,b,c,d);
if((a-b-c)*d==24)
printf("(%d-%d-%d)*%d\n",a,b,c,d);
if((a-b)*c+d==24)
printf("(%d-%d)*%d+%d\n",a,b,c,d);
if((a-b)*c-d==24)
printf("(%d-%d)*%d-%d\n",a,b,c,d);
if((a*b+c)*d==24)
printf("(%d*%d+%d)*%d\n",a,b,c,d);
if((double)(a*b+c)/d==24)
printf("(%d*%d+%d)/%d\n",a,b,c,d);
if((a*b-c)*d==24)
printf("(%d*%d-%d)*%d\n",a,b,c,d);
if((double)(a*b-c)/d==24)
printf("(%d*%d-%d)/%d\n",a,b,c,d);
if(a*b*c+d==24)
printf("%d*%d*%d+%d\n",a,b,c,d);
if(a*b*c-d==24)
printf("%d*%d*%d-%d\n",a,b,c,d);
if((double)(a*b)/c+d==24)
printf("%d*%d/%d+%d\n",a,b,c,d);
if((double)(a*b)/c-d==24)
printf("%d*%d/%d-%d\n",a,b,c,d);
if(c*d+a*d/(double)(b)==24)
printf("((%d/%d)+%d)*%d\n",a,b,c,d);
if((a+b*c)/(double)(b*d)==24)
printf("((%d/%d)+%d)/%d\n",a,b,c,d);
if(a*d/(double)(b)-c*d==24)
printf("((%d/%d)-%d)*%d\n",a,b,c,d);
if((a-b*c)/(double)(b*d)==24)
printf("((%d/%d)-%d)/%d\n",a,b,c,d);
if((double)(a*c)/b+d==24)
printf("%d/%d*%d+%d\n",a,b,c,d);
if((double)(a*c)/b-d==24)
printf("%d/%d*%d-%d\n",a,b,c,d);
if((double)(a*d)/(b*c)==24)
printf("%d/%d/%d*%d\n",a,b,c,d);
if(a*(b+c)+d==24)
printf("%d*(%d+%d)+%d\n",a,b,c,d);
if(a*(b+c)-d==24)
printf("%d*(%d+%d)-%d\n",a,b,c,d);
if((double)(a)/(b+c)*d==24)
printf("%d/(%d+%d)*%d\n",a,b,c,d);
if(a*(b-c)+d==24)
printf("%d*(%d-%d)+%d\n",a,b,c,d);
if(a*(b-c)-d==24)
printf("%d*(%d-%d)-%d\n",a,b,c,d);
if((a-b*c)*d==24)
printf("(%d-%d*%d)*%d\n",a,b,c,d);
if((double)(a*d)/(b*c)==24)
printf("%d/(%d*%d)*%d\n",a,b,c,d);
if((double)(a*c)/b+d==24)
printf("%d/(%d/%d)+%d\n",a,b,c,d);
if((double)(a*c)/b-d==24)
printf("%d/(%d/%d)-%d\n",a,b,c,d);
if((double)(a*c*d)/b==24)
printf("%d/(%d/%d)*%d\n",a,b,c,d);
if((double)(a*c)/(b*d)==24)
printf("%d/(%d/%d)/%d\n",a,b,c,d);
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
POJ 3983:快算24的更多相关文章
- 【Nodejs】“快算24”扑克牌游戏算法 1.02
快算24是一种挺好的锻炼孩子算数能力的扑克牌游戏,它的游戏方式是把四张牌的牌面数值通过有限四则运算得到结果24,四张牌必须仅用一次.各地玩法还有点差别,有的只算1-10,其它抽出来:有的地方把整幅牌都 ...
- 【Nodejs】“快算24”扑克牌游戏算法
算24是一款扑克牌游戏,它的游戏方式是把四张牌的牌面数值通过四则运算得到结果24,四张牌必须仅用一次.这是一种挺好的锻炼孩子算数能力的扑克牌游戏. 各地玩法还有点差别,有的只算1-10,其它抽出来:有 ...
- 【Nodejs】“快算24”扑克牌游戏算法 1.01
考虑到1.00版本需要改源码变更四个数字,这版修改了一下变成控制台输入了. 先把两个数四则运算得到结果想清楚就是C2代码,三个数就是C3,四个数就是C4.简单的代码简单,却是复杂的基础:复杂的脱胎于简 ...
- 快算24点,POJ(3983)
题目链接:http://poj.org/problem?id=3983 中文题,就不解释题意了. 类似之前的一篇博客,这里也不上解释了,直接上代码吧. #include <iostream> ...
- POJ3983 快算24
很正常的题目,迷一样的答案. 测试数据只有一组,对没错只有一组. #include<cstdio> int main() { printf("5*(5-(1/5))\n" ...
- hdu 1427 速算24点
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1427 速算24点 Description 速算24点相信绝大多数人都玩过.就是随机给你四张牌,包括A( ...
- 24点游戏&&速算24点(dfs)
24点游戏 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit Sta ...
- hdu1427之速算24点
速算24点 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- python实现算24的算法
1.介绍 给定4个整数,数字范围在1-13之间,任意使用 + - * / ( ) ,构造出一个表达式,使得最终结果为24,这就是常见的算24的游戏.本文介绍用Python语言实现的两种方式.2.实现思 ...
随机推荐
- nacos 日志问题 ERR-CODE: [NACOS-0002], Type: [环境问题]
nacos配置中心配置后,项目启动正常,运行项目也正常,但是总是打印如下日志: 2019-10-11 15:44:09.792 [com.alibaba.nacos.client.Worker.lon ...
- 「Luogu P3168 [CQOI2015]任务查询系统」
介绍本题的两种做法: 方法1 前置芝士 线段树:一个很重要的数据结构. 树状数组:一个很重要的数据结构. 具体实现 区间修改,单点查询很容易就会想到树状数组了,至于查询前k个数的和又可以丢给权值线段树 ...
- 33 class.forname
class.forname(className) class.forname(classname).newInstance class.forname(classname,true,Thread.XX ...
- 在Linux上用Apache搭建Git服务器
在Linux上用Apache搭建Git服务器 最近在学Linux,终于在Linux上用Apache搭建起了Git服务器,在此记录一下. 服务器:阿里云服务器 Linux版本:CentOS 6.5 ...
- App在iTunes Store上的地址
之前可以在电脑上的iTunes上直接搜索到适用于iPhone.iPad的App,进而下载ipa或者复制它的URL. 记得从2017年3月开始就没有这个功能了. ==================== ...
- 【快学springboot】9.使用 @Transactional 注解配置事务管理
介绍 springboot对数据库事务的使用非常的方便,只需要在方法上添加@Transactional注解即可.Spring 为事务管理提供了丰富的功能支持.Spring 事务管理分为编程式和声明式的 ...
- hdu 1599 find the mincost route floyd求无向图最小环
find the mincost route Time Limit: 1000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O ...
- ES 查询时 排序报错(fielddata is disabled on text fileds by default ... )解决方法
背景:elasticsearch 进行排序的时候,可能会排序数字.日期.但是在排序text类型的时候就会出现上述错误 原因(参考): https://blog.csdn.net/wild46cat/a ...
- Derivative Pricing_2_Vasicek
*Catalog 1. Plotting Vasicek Trajectories 2. CKLS Method for Parameter Estimation (elaborated by GMM ...
- Java注解浅谈
注解定义(来自百度百科):指示编译器如何对待您的自定义 Annotation,预设上编译器会将Annotation资讯留在class档案中,但不被虚拟机器读取,而仅用于编译器或工具程式运行时提供资讯. ...