题目

注意: 6 + 2 * 4 + 10 = 24 不是一个数字一个数字的计算

代码

/*---------------------------------------
*   日期:2015-07-03
*   作者:SJF0115
*   题目:24点游戏算法
*   来源:华为机试练习题
-----------------------------------------*/
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;// 迭代 模拟各种组合
void helper(vector<int> &num,int index,int result,bool &isSucess){if(index == 4){if(result == 24){isSucess = true;}//ifreturn;}//iffor(int i = 0;i < 4;++i){if(i == 0){//op.push_back('+');helper(num,index+1,result+num[index],isSucess);}//ifelse if(i == 1){//op.push_back('-');helper(num,index+1,result-num[index],isSucess);}//elseelse if(i == 2){//op.push_back('*');helper(num,index+1,result*num[index],isSucess);}//elseelse{//op.push_back('/');helper(num,index+1,result/num[index],isSucess);}//else//op.pop_back();// 找到解决方案if(isSucess){break;}//if}//for
}bool Game24Points(int a, int b, int c, int d){vector<int> num;num.push_back(a);num.push_back(b);num.push_back(c);num.push_back(d);bool isSucess = false;helper(num,1,num[0],isSucess);if(isSucess){return isSucess;}//if// 全排列  主要应对 6 + 2 * 4 + 10 = 24while(next_permutation(num.begin(),num.end())){helper(num,1,num[0],isSucess);if(isSucess){return isSucess;}//if}//whilereturn isSucess;
}

[华为机试练习题]44.24点游戏算法相关推荐

  1. 华为机试HJ67:24点游戏算法

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 问题描述:给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利 输入: 4个 ...

  2. 【华为机试067】24点游戏算法

    题目描述: 给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利 输入: 4个1-10的数字.[数字允许重复,但每个数字仅允许使用一次,测试用例保证无异常数字] 输出: true or fal ...

  3. [华为机试练习题]55.最大公约数 amp; 多个数的最大公约数

    题目 描写叙述: 输入2个数字,最后输出2个数字的最大公约数 题目类别: 位运算 难度: 0基础 执行时间限制: 无限制 内存限制: 无限制 阶段: 入职前练习 输入: 2个整数 输出: 输出数字1和 ...

  4. [华为机试练习题]60.水仙花数

    题目 描述: 水仙花数又称阿姆斯特朗数. 水仙花数是指一个n 位数( n≥3 ),它的每个位上的数字的n 次幂之和等于它本身.(例如:1^3 + 5^3 + 3^3 = 153) 求输入的数字是否为水 ...

  5. [华为机试练习题]51.数列求和

    题目 描写叙述: 题目描写叙述 编敲代码,输入一个正整数n.求下列算式的值.要求定义和调用函数fact(k)计算k的阶乘. 1+1/2!+ .... +1/n! 计算结果保存在double类型变量中. ...

  6. [华为机试练习题]37.合唱队

    题目 描述: 计算最少出列多少位同学,使得剩下的同学排成合唱队形说明:N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学 ...

  7. (记录)华为机试练习题13—句子逆序

    华为机试练习题13-句子逆序 题目描述 输入描述: 输出描述 例如: 代码(Java) 题目描述 将一个英文语句以单词为单位逆序排放.例如"I am a boy",逆序排放后为&q ...

  8. [华为机试练习题]5.IP地址推断有效性

    题目 推断输入的字符串是不是一个有效的IP地址 具体描写叙述: 请实现例如以下接口 boolisIPAddressValid(constchar* pszIPAddr) 输入:pszIPAddr 字符 ...

  9. [华为机试练习题]28.报数

    题目 描述: 有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出,问最后留下的那位是原来第几号. 题目类别: 数组,指针 难度: 初级 运行时间限制: 10Sec 内存限 ...

最新文章

  1. 自学笔记——1.Pyhton保留关键字
  2. 《深入浅出Google Android》即将隆重上市!
  3. java 8 parallelStream()
  4. SQLite 安装(http://www.w3cschool.cc/sqlite/sqlite-installation.html)
  5. Linux shell:执行shell脚本的几种方式
  6. 一段三次分拆的蚂蚁搬家式MySQL迁移经历
  7. 2021年全球知名开源项目大更新
  8. 项目开发中经常有一些被嫌弃的小数据,现在全丢给 FastDFS
  9. JPA /休眠刷新策略初学者指南
  10. (原创)SpringBoot入门
  11. 字符串处理——字典树
  12. CPU高负载排查小技巧(2分钟速读版),细心的优化可能为公司节省一个亿!
  13. 北京环球影城上线王者荣耀英雄主题活动
  14. 【Elasticsearch】Elasticsearch 索引 模板 template
  15. keil中下载程序的擦除功能
  16. C# 获取汉语拼音全码及简码
  17. swing的maven项目打成jar包
  18. 货币供应量M1M2与上证综合指数之间的相关性图示
  19. C语言中.c文件与.h文件 的使用-2020-12-27
  20. AS3多人游戏开发—同步人物移动

热门文章

  1. java读取ofd文档内容_ofd电子文档内容分析工具(分析文档、签章和证书)
  2. 两个视频左右拼接成一个视频,且两个视频音频都保留
  3. 兰州理工 计算机专业,兰州理工大学计算机与通信学院
  4. React项目,从详情页返回列表页时,保存数据并返回到原来的位置
  5. 联想 M415 I3-6100 CPU安装系统方法
  6. Maya_动画渲染出每帧动画的设置
  7. PC博物馆(3) MITS Altair 8800
  8. 苹果手机关闭自动更新_苹果手机耗电快?可能和这4个设置有关,建议关闭宜早不宜迟...
  9. 【论文精读 | 细节分析 | 代码实现】PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
  10. 2019年深圳积分入户办理经验