华为OJ24点游戏算法
2017-04-26 15:48
375 查看
描述 | 问题描述:给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利 输入: 4个1-10的数字。[数字允许重复,测试用例保证无异常数字] 输出: true or false |
---|---|
知识点 | 循环 |
运行时间限制 | 10M |
内存限制 | 128 |
输入 | 输入4个int整数 |
输出 | 返回能否得到24点,能输出true,不能输出false |
样例输入 | 7 2 1 10 |
样例输出 | true |
#include <iostream> #include <string> #include <algorithm> #include <vector> #include <fstream> #include <map> using namespace std; int Is24Game(int *a, int i, int result) { if (result == 24) return 1; else if (result > 24 || i >= 4) return 0; else return Is24Game(a, i + 1, result + a[i]) || Is24Game(a, i + 1, result - a[i]) || Is24Game(a, i + 1, result * a[i]) || Is24Game(a, i + 1, result == 0 ? 0 : result / a[i]); } int main() { int *a = new int[4]; for (int i = 0; i < 4; i++) cin >> a[i]; sort(a, a + 4); bool flag = false; do { if (Is24Game(a, 0, 0)) { cout <<"true"; flag = true; break; } } while (next_permutation(a, a + 4)); if (!flag) cout << "false"; delete[]a; return 0; }
相关文章推荐
- 华为oj 24点游戏算法
- 华为OJ 初级:24点游戏算法
- 【华为OJ】【097-24点游戏算法】
- 华为OJ——24点游戏算法
- 华为oj初级 24点游戏算法
- 24点游戏算法-华为OJ
- 华为OJ——24点游戏算法
- [华为OJ--C++]097-24点游戏算法
- 华为OJ:24点游戏算法
- 24点游戏算法-华为OJ
- 华为oj_24点游戏算法
- 华为机试:计算字符串的距离、24点游戏算法
- 华为 2033 24点游戏算法
- [华为机试练习题]44.24点游戏算法
- 华为OJ平台练习题--24点游戏
- 华为OJ训练之0022-170107-24点游戏
- 华为OJ平台——24点游戏
- 华为OJ(24点游戏)
- 华为OJ之24点算法(非递归C++代码)
- OJ 系列之24点游戏算法