题目

输入一个正整数X,在以下的等式左边的数字之间加入+号或者-号,使得等式成立。

1 2 3 4 5 6 7 8 9 = X 比方: 12-34+5-67+89 = 5 1+23+4-5+6-7-8-9 = 5 请编敲代码,统计满足输入整数的全部整数个数。 输入: 正整数。等式右边的数字 输出: 使该等式成立的个数 例子输入:5 例子输出:21

代码

/*---------------------------------------
*   日期:2015-07-06
*   作者:SJF0115
*   题目:等式变换
*   来源:华为机试真题
-----------------------------------------*/
#include <iostream>
#include <string>
#include <vector>
#include <stack>
#include <algorithm>
using namespace std;// 整型转换为字符串
string Int2Str(int num){string str;if(num == 0){str = '0';return str;}//ifint tmp = num;while(num){str.insert(str.begin(),num % 10 + '0');num /= 10;}//whilereturn str;
}/*
当前计算值              result
符合的等式个数          count
等式结果                x
相邻数合并的结果        sequence    1 + 2 + 345  345 就是 sequence
*/
void helper(vector<int> &num,int index,int x,int result,int sequence,int &count,string op){if(index == num.size()){if(result + sequence == x || result - sequence == x){++count;if(result + sequence == x){op += "+"+Int2Str(sequence);}//ifelse{op += "-"+Int2Str(sequence);}//elsecout<<op<<endl;}//ifreturn;}//if// 连续数helper(num,index+1,x,result,sequence * 10 + num[index],count,op);// 加法 +if(op.size() > 0){// 以num[index]为sequence的起点helper(num,index+1,x,result + sequence,num[index],count,op+"+"+Int2Str(sequence));}//ifelse{// 以num[index]为sequence的起点helper(num,index+1,x,result + sequence,num[index],count,op+Int2Str(sequence));}//elseif(op.size() > 0){// 减法-// 以num[index]为sequence的起点helper(num,index+1,x,result - sequence,num[index],count,op+"-"+Int2Str(sequence));}//if
}int TransformationEquation(vector<int> num,int x){int count = 0;string op = "";helper(num,1,x,0,num[0],count,op);return count;
}int main(){int n,x;int num;//freopen("C:\\Users\\Administrator\\Desktop\\acm.in","r",stdin);while(cin>>n>>x){vector<int> vec;for(int i = 0;i < n;++i){cin>>num;vec.push_back(num);}//forcout<<TransformationEquation(vec,x)<<endl;}//whilereturn 0;
}

[华为机试真题][2014]63.等式变换相关推荐

  1. [华为机试真题][2014]62.去除重复字符并排序

    题目 描述: 去除重复字符并排序 运行时间限制: 无限制 内容限制: 无限制 输入: 字符串 输出: 去除重复字符并排序的字符串 样例输入: aabcdefff 样例输出: abcdef 代码 /*- ...

  2. 华为机试真题分类汇总

    1. 字符串 类别 题目 知识点 题目分值 / 难度 字符串 [华为机试真题 JAVA]TLV解析Ⅰ-100 字符串分隔.拼接.搜索 100/中等 字符串 [华为机试真题 JAVA]寻找相同子串-10 ...

  3. 【华为机试真题 Python实现】查找众数及中位数

    文章目录 前言 题目描述 示例 1 示例 2 参考代码 前言 <华为机试真题>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期间有想了解的可以私信我,我会 ...

  4. 【华为机试真题详解】不含 101 的数【2022 Q4 | 100分】

    文章目录 前言 题目描述 输入描述 输出描述 示例 1 示例2 题目解析 参考代码 前言 <华为机试真题详解 Python实现>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果 ...

  5. 【华为机试真题详解】开心消消乐【2022 Q4 | 100分】

    文章目录 前言 题目描述 输入描述 输出描述 示例 1 题目解析 参考代码 前言 <华为机试真题详解 Python实现>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备 ...

  6. [华为机试真题]69.姓名的夫妻相

    题目 在中国,形容夫妻恩爱的词汇中,大家用的比较多的就是"夫妻相".所谓"夫妻相",就是两个人看上去比较般配,长相.身材等某些方面有一定的相似度. 本题则另辟蹊 ...

  7. 【华为机试真题 Python实现】篮球比赛【2022 Q1 Q2 | 200分】

    文章目录 前言 题目描述 示例 1 参考代码 前言 <华为机试真题>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您 ...

  8. 【华为机试真题详解】高矮个子排队

    文章目录 前言 题目描述 示例 1 示例 2 示例 3 题目分析 参考代码 前言 <华为机试真题详解 Python实现>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备 ...

  9. 【华为机试真题详解】优选核酸检测点【2022 Q4 | 100分】

    文章目录 前言 题目描述 输入描述 输出描述 示例 1 题目解析 参考代码 前言 <华为机试真题详解 Python实现>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备 ...

  10. 【华为机试真题 Python实现】热点网站统计【2022 Q1 Q2 | 100分】

    文章目录 前言 题目描述 示例 1 参考代码 前言 <华为机试真题>专栏含牛客网华为专栏.华为面经试题.华为OD机试真题. 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您 ...

最新文章

  1. SingleR包注释单细胞数据
  2. c/c++基础 输入函数/流
  3. python如何读取中文文件-如何用Python提取中文关键词?
  4. 第2章 基本的TCP套接字
  5. 计算机运行黑屏显示器正常,电脑主机运行正常 显示器黑屏
  6. 使用Atomikos Transactions Essentials实现多数据源JTA分布式事务--转载
  7. 【Java7】练习:选角色,挑苹果,员工类,换心脏,斗地主,发工资,客户信息管理软件,开发团队调度系统
  8. 使用Spring Boot自动发布和监视API
  9. 使用云原生buildpacks将你的代码转换成Docker Image | 技术干货
  10. bzoj 1061 志愿者招募 费用流
  11. iOS开发那些事-iOS6苹果地图有用开发
  12. node2vec python_node2vec 安装失败经历
  13. 三菱plc 毕设_软件分享 | 学习PLC,这个PLC仿真软件你需要知道
  14. 按位与运算()和求余运算(%)的联系
  15. OJ每日一练——鸡兔同笼问题
  16. 原生JS javascript解除绑定事件 JS删除绑定事件
  17. Python画一个内部没有边线的五角星
  18. Golf Range Finder 高尔夫激光测距仪和GPS测距仪
  19. juniper RMA坏件返还流程
  20. kubernetes pod 级别的 jvm 监控

热门文章

  1. qfileinfolist 取中间_公司起名:网络公司名字起名寓意如何取寓意成功的网络公司名字...
  2. 龙将加速浏览器_360安全浏览器正式进军政企市场 积极适配中国芯
  3. 计算机语言em,Python:EM(期望极大算法)实战
  4. linux debian安装ssh,Ubuntu Linux上安装SSH和vsFTPd的方法
  5. ecplise git修改提交信息_Eclipse中Git的使用说明之一:使用Git上传新项目到远程仓库...
  6. engine.POST()处理POST请求
  7. gin -get请求的小示例2-Handle处理post请求
  8. redis的key_value截图深入学习
  9. mysql5.5安装最后一步一直无反应_吉林电泳型材安装
  10. sqlmap tamper mysql_Sqlmap过waf命令tamper各脚本的适用环境