uva10344 - 23 out of 5
来源:互联网 发布:mac边充电边用好吗 编辑:程序博客网 时间:2024/05/16 03:19
很简单的一题,先对5个数全排,然后对数之间加入+,-,*;
ac代码,用时2.412s
#include <iostream>#include <cstring>#include<cstdio>#include<cstdlib>#include <string>#include<algorithm>//#define MARK -2147483647using namespace std;int fuhao[]={1,2,3};int flag;int jf[6];int shu[10];void jisuan(int f){ int i; if(f==4) { int shuu=shu[0];int shi=1; for(i=0;i<4;++i) { switch(jf[i]) { case 1: shuu*=shu[shi++];break; case 2: shuu+=shu[shi++];break; case 3: shuu-=shu[shi++];break; } } if(shuu==23)flag=1; return; } for(i=0;i<3;++i) { jf[f]=fuhao[i]; jisuan(f+1); }return;}int main(){// freopen("in.txt","r",stdin); int i; while(scanf("%d%d%d%d%d",&shu[0],&shu[1],&shu[2],&shu[3],&shu[4])) { flag=0; if(!shu[0]&&!shu[2]&&!shu[3]&&!shu[4]&&!shu[1])break; sort(shu,shu+5); do { jisuan(0);if(flag)break; }while(next_permutation(shu,shu+5)); if(flag)printf("Possible\n"); else printf("Impossible\n"); } return 0 ;}
对上面代码进行改进,ac,用时0.319s,深刻认识到了代码简洁的重要性。
#include <iostream>#include <cstring>#include<cstdio>#include<cstdlib>#include <string>#include<algorithm>//#define MARK -2147483647using namespace std;int fuhao[]={1,2,3};int flag;int jf[6];int shu[10];//void jisuan(int f)//{ int i;// if(f==4)// { int shuu=shu[0];int shi=1;// for(i=0;i<4;++i)// {// switch(jf[i])// {// case 1: shuu*=shu[shi++];break;// case 2: shuu+=shu[shi++];break;// case 3: shuu-=shu[shi++];break;// }// }// if(shuu==23)flag=1;// return;// }// for(i=0;i<3;++i)// {// jf[f]=fuhao[i];// jisuan(f+1);// }return;//}void jisuan(int cur,int sum){ if(cur==5) {if(sum==23)flag=1;return; } jisuan(cur+1,sum*shu[cur]); if(flag)return; jisuan(cur+1,sum+shu[cur]); if(flag)return; jisuan(cur+1,sum-shu[cur]); if(flag)return; return;}int main(){// freopen("in.txt","r",stdin); int i; while(scanf("%d%d%d%d%d",&shu[0],&shu[1],&shu[2],&shu[3],&shu[4])) { flag=0; if(!shu[0]&&!shu[2]&&!shu[3]&&!shu[4]&&!shu[1])break; sort(shu,shu+5); do { jisuan(1,shu[0]);if(flag)break; }while(next_permutation(shu,shu+5)); if(flag)printf("Possible\n"); else printf("Impossible\n"); } return 0 ;}
- uva10344 - 23 out of 5
- uva10344 - 23 out of 5
- uva10344 23 out of 5
- UVA10344 23 out 5
- 23 Out of 5
- UVA10344----算23点
- UVa10344
- UVA10344
- uva10344
- uva10344
- UVA10344
- UVa10344
- uva10344
- 10344--23 out of 5
- 10344 - 23 out of 5(***)
- 10344 - 23 out of 5
- UVaOJ10344 - 23 out of 5
- 10344 - 23 out of 5
- 基于 bootstrap gird 插件
- 递归
- 简单快速的可用性测试
- 电脑没声音肿么办。。。
- 基于IE与css的表格行头与多层列头锁定方法
- uva10344 - 23 out of 5
- 命令链模式解释
- 解决android4.0系统中菜单(Menu)添加Icon无效问题
- 设计递归函数,求出并输出 Fibnacci 序列
- 13周项目1-递归求奇数连乘的积
- WPF连接SQL数据库,将TextBox中填写的数据插入数据库中,并更新DataGrid表
- Struts2标签<s:iterator>中使用Map
- Tomcat内存的增减
- perl函数中的传引用用法