24 点 源代码 系列
来源:互联网 发布:xp如何禁止安装软件 编辑:程序博客网 时间:2024/06/06 00:08
【屌丝代码 001】
#include<cstdio> #include<iostream> #include <cmath> using namespace std; //+-*/ 1234 unsigned long int xx[1001]; int x=1; int pd; int f1(int a, int b, int c, int d) { int sum; pd=0; char s1,s2,s3; for (int j = 1; j <= 4; j++) { for (int k = 1; k <= 4; k++) { for (int l = 1; l <= 4; l++) { sum = 0; sum += a; switch (j) { case 1:sum += b; break; case 2:sum -= b; break; case 3:sum *= b; break; case 4: { if (sum%b) { sum = 9999; } else { sum /= b; } }break; default: break; } switch (k) { case 1:sum += c; break; case 2:sum -= c; break; case 3:sum *= c; break; case 4: { if (sum%c) { sum = 9999; } else { sum /= c; } }break; default: break; } switch (l) { case 1:sum += d; break; case 2:sum -= d; break; case 3:sum *= d; break; case 4: { if (sum%d) { sum = 9999; } else { sum /= d; } }break; default: break; } switch (j) { case 1:s1='+';break; case 2:s1='-';break; case 3:s1='*';break; case 4:s1='/';break; } switch (k) { case 1:s2='+';break; case 2:s2='-';break; case 3:s2='*';break; case 4:s2='/';break; } switch (l) { case 1:s3='+';break; case 2:s3='-';break; case 3:s3='*';break; case 4:s3='/';break; } if (sum == 24) { if (x==0) { xx[x]=a*1000000+b*100000+c*10000+d*1000+j*100+k*10+l; x++; printf("((%d%c%d)%c%d)%c%d==24\n",a,s1,b,s2,c,s3,d); } else { for (int i=1;i<=x;i++) { if ((a*1000000+b*100000+c*10000+d*1000+j*100+k*10+l)==xx[i]) { pd=1; break; } } if (pd==0) { xx[x]=a*1000000+b*100000+c*10000+d*1000+j*100+k*10+l; x++; printf("((%d%c%d)%c%d)%c%d==24\n",a,s1,b,s2,c,s3,d); } } return 1; } } } } return 0; } int f2(int a, int b, int c, int d) { int sum = 0; sum = f1(a, b, c, d) + f1(a, b, d, c) + f1(a, c, b, d) + f1(a, c, d, b) + f1(a, d, b, c) + f1(a, d, c, b); if (sum != 0) { return 1; } else { return 0; } } int main() { int a, b, c, d; int sum; cin >> a >> b >> c >> d; sum = f2(a, b, c, d) + f2(b, a, c, d) + f2(c, a, b, d) + f2(d, a, b, c); if (sum == 0) { cout << 'N' << endl; } return 0; }
【屌丝代码 002】
<pre name="code" class="cpp">#include <string> #include <cmath> #include <iostream> using namespace std; const double PRECISION = 1E-6; const int COUNT_OF_NUMBER = 4; const int NUMBER_TO_BE_CAL = 24; double number[COUNT_OF_NUMBER]; string expression[COUNT_OF_NUMBER]; bool Search(int n) { if (n == 1) { if ( fabs(number[0] - NUMBER_TO_BE_CAL) < PRECISION ) { cout << expression[0] << endl; return true; } else { return false; } } for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { double a, b; string expa, expb; a = number[i]; b = number[j]; number[j] = number[n - 1]; expa = expression[i]; expb = expression[j]; expression[j] = expression[n - 1]; expression[i] = '(' + expa + '+' + expb + ')'; number[i] = a + b; if ( Search(n - 1) ) return true; expression[i] = '(' + expa + '-' + expb + ')'; number[i] = a - b; if ( Search(n - 1) ) return true; expression[i] = '(' + expb + '-' + expa + ')'; number[i] = b - a; if ( Search(n - 1) ) return true; expression[i] = '(' + expa + '*' + expb + ')'; number[i] = a * b; if ( Search(n - 1) ) return true; if (b != 0) { expression[i] = '(' + expa + '/' + expb + ')'; number[i] = a / b; if ( Search(n - 1) ) return true; } if (a != 0) { expression[i] = '(' + expb + '/' + expa + ')'; number[i] = b / a; if ( Search(n - 1) ) return true; } number[i] = a; number[j] = b; expression[i] = expa; expression[j] = expb; } } return false; } void main() { for (int i = 0; i < COUNT_OF_NUMBER; i++) { char buffer[20]; int x; cin >> x; number[i] = x; itoa(x, buffer, 10); expression[i] = buffer; } if ( Search(COUNT_OF_NUMBER) ) { cout << "Success." << endl; } else { cout << "Fail." << endl; } }
0 0
- 24 点 源代码 系列
- 24点C++源代码
- 24点求解C程序源代码
- [分享]24点源代码[使用扑克牌显示]
- 24点游戏c语言源代码
- [分享]24点源代码[使用扑克牌显示]
- 24点源代码[使用扑克牌显示]
- 24点游戏C语言源代码
- C++马鞍点源代码
- OJ 系列之24点游戏算法
- 自己写的24点游戏(源代码)
- 24点游戏C语言(附源代码)
- 阅读源代码系列
- 阅读源代码系列
- 阅读源代码系列
- 源代码系列之JDBC
- dubbo extension扩展点 源代码
- WebKit 内核源代码分析系列
- 关于TableView Cell的一些设置
- Spring MVC - MultipartFile实现文件上传(单文件与多文件上传)
- 一些經典的ORACLE性能管理腳本(一)
- 配置OpenStack的glance出现错误Failed to show index. Got error: You are not authenticated.
- java 中字节数组与十六进制字符串及普通字符串之间的转换
- 24 点 源代码 系列
- Android端传送json字符串到Struts2端
- java的成长历程3
- 各滤镜处理效果记录,
- JavaScript高级程序设计【面向对象-属性类型】
- oauth服务端之Java版oltu
- 文章标题
- 网关 的理解
- 分享个ppt转换成pdf格式的小方法