POJ-3983-快算24(简单模拟)
来源:互联网 发布:淘宝网买家中心 编辑:程序博客网 时间:2024/06/05 16:24
//传送门:http://poj.org/problem?id=3983#include <queue>#include <functional>#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <stack>#include <vector>#include <set>#include <map>#include <string>#include <cmath>#include <cstdlib>#include <ctime>#include <assert.h>using namespace std;#define N 100005char ch[5]={'+','-','*','/'};float f(float a,float b,int c) // c与 ch 数组对应{ switch(c){ case 0: return a+b;break; case 1: return a-b;break; case 2: return a*b;break; case 3: if(b==0) return 0x3f3f3f3f*1.; // /0 不特别考虑也能过 else return a/b; break; }}bool test(int i,int j,int k,float a,float b,float c,float d){ /* if(i==2 && j==1 && k==3){ cout<<f( f( f(a,b,i), c, j), d, k)<<endl; cout<<f( f(a,b,i), f(c, d, j), k)<<endl; cout<<f( f(a,f(b, c, j), i),d, k)<<endl; cout<<f(a, f( f(b, c, j), d, k), i)<<endl; cout<<f(a, f(b, f(c, d, k), j), i)<<endl; }*/ // 一共有5种运算顺序 if( (int)f( f( f(a,b,i), c, j), d, k) ==24){ printf("((%.0f%c%.0f)%c%.0f)%c%.0f",a,ch[i],b,ch[j],c,ch[k],d); return 1; } if( (int)f( f(a,b,i), f(c, d, j), k) ==24){ printf("(%.0f%c%.0f)%c(%.0f%c%.0f)",a,ch[i],b,ch[j],c,ch[k],d); return 1; } if( (int)f( f(a,f(b, c, j), i),d, k) ==24){ printf("(%.0f%c(%.0f%c%.0f))%c%.0f",a,ch[i],b,ch[j],c,ch[k],d); return 1; } if( (int)f(a, f( f(b, c, j), d, k), i) ==24){ printf("%.0f%c((%.0f%c%.0f)%c%.0f)",a,ch[i],b,ch[j],c,ch[k],d); return 1; } if( (int)f(a, f(b, f(c, d, k), j), i) ==24){ printf("%.0f%c(%.0f%c(%.0f%c%.0f))",a,ch[i],b,ch[j],c,ch[k],d); return 1; } return 0;}int main(){ float a,b,c,d; scanf("%f%f%f%f",&a,&b,&c,&d); //4个数之间填3个操作符 , 枚举 for(int i=0;i<4;i++){ for(int j=0;j<4;j++){ for(int k=0;k<4;k++){ if(test(i,j,k,a,b,c,d)) return 0; //找到一个答案就返回 } } }}
1 0
- POJ-3983-快算24(简单模拟)
- POJ 3983 快算24(水~)
- poj 3983 快算24
- poj 3983 快算24
- poj 3983 快算24
- POJ 3983:快算24
- POJ 3983 快算24
- POJ 3983 快算24
- POJ 3983 快算24
- poj 3983 快算24
- POJ 3983 快算24 表达式模拟非常好的一个题
- POJ 3983 快算24 中文
- poj快算24 暴力
- 经典递归问题--快算24 POJ--3983
- poj 1281 MANAGER(简单模拟题)
- POJ 1132 Border(边界) 简单模拟
- poj 2190 简单模拟(ISBN)
- POJ 2000 Gold Coins(简单模拟)
- Java复习之线程的操作方法
- tftp客户端实现(一)-发出一条RRQ消息
- CentOS查询端口占用和清除端口占用的程序
- [LeetCode]Battleships in a Board 战舰数目
- Android WebView那些坑之上传文件
- POJ-3983-快算24(简单模拟)
- Unity游戏开发之路上的那些坑——NullReferenceException
- java单例设计模式之饿汉模式
- android教你打造独一无二的刷新加载框架
- 斯坦福机器学习教程学习笔记之1
- Tcp内部常见计时器
- Python列表的语法和使用
- 未来12个趋势
- jQuery选择器之表单元素选择器