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.实现思 ...
随机推荐
- redis集群配置文件
bind xxx.xxx.xxx.xxx 绑定redis服务器网卡IP,默认为127.,即本地回环地址.这样的话,访问redis服务只能通过本机的客户端连接,而无法通过远程连接.如果bind选项为空的 ...
- 「APIO2012」派遣
「APIO2012」派遣 传送门 当预算超过限制时,优先丢掉薪水高的忍者(左偏树维护一下),然后答案取合法答案的最大值. 参考代码: #include <algorithm> #inclu ...
- 学习Javascript的8张思维导图
分别归类为: javascript变量 javascript运算符 javascript数组 javascript流程语句 javascript字符串函数 javascript函数基础 javascr ...
- 「NOIP2009」Hankson 的趣味题
Hankson 的趣味题 [内存限制:$128 MiB$][时间限制:$1000 ms$] [标准输入输出][题目类型:传统][评测方式:文本比较] 题目描述 Hanks 博士是 BT(Bio-Tec ...
- A. Optimal Currency Exchange 兑换硬币,剩下的钱最少
A. Optimal Currency Exchange time limit per test 1.5 seconds memory limit per test 512 megabytes inp ...
- json object string互转
参考: https://www.cnblogs.com/guangshan/p/4459436.html JsonArray和JsonObject遍历方法 参考:https://blog.csdn.n ...
- Python学习第四课——基本数据类型一之int and str
1.数字(int) - int() 方法 # 定义 a1=123 a2=456 #功能1:将字符串转换为数字 #例子1: a = " print(type(a)) # type()为查看类型 ...
- 微软结合Veritas,使用Azure云中的混合存储
导读 在与Symantec(Symantec)脱离10年(通常令人不愉快的关系)一周年之际,Veritas Technologies在2月22日宣布与Microsoft Corp. 建立了多年战略全球 ...
- Linux centosVMware 压缩打包介绍、gzip压缩工具、bzip2压缩工具、xz压缩工具。
一.压缩打包介绍 Lnux下常见的压缩文件通常是.tar.gz模式,还有.tar..gz..bz2..zip..tar.bz2..tar.xz. .gz:表示由gzip压缩工具压缩的文件 .bz2:表 ...
- Python集合语法
a = {1,2,3,4,5,6,7,8,"aa","2"} b = {2,3,4,5,6,7,8,9,99,7,6,6} v = a.intersect ...