一道program test题目
前天去面试的一道上机测试题(凭记忆写的题目)
Question:
给定输入整数\(\left( k \right)\),找到最小的自然数\(n\left( {n \ge 1} \right)\),使得下列公式成立:
\[?1?2 \cdots ?n = k\]其中\(?\)可以是\({\rm{ + }}\)(加号)或者\( - \)(减号),输出\(n\)以及完整的表达式(可以不唯一)。
Example:
Input:12
Output:
7
-1+2+3+4+5+6-7=12
Solution:
#include<iostream>
#include<vector>
#include<math.h>
using namespace std;
int main()
{
cout<<"please input K:"<<endl;
int k;
cin>>k;
int m=k;
int n=;
while(n)
{
if(abs(k)%== && (n*(n+)/)%== && abs(k)<=(n*(n+)/))
break;
else if(abs(k)%== && (n*(n+)/)%== && abs(k)<=(n*(n+)/))
break;
else
n++;
}
//下面开始计算每个数字前面的正负号
vector<int> data;
vector<char> operators;
for(int i=;i<=n;i++)
data.push_back(i);
int max;
for(int j=n;j>=;j--)
{
max=(j*(j+)/);
if((max-k) >= (*data[j-]))
{
operators.push_back('-');
k=k+data[j-];
}
else
{
operators.push_back('+');
k=k-data[j-];
}
}
cout<<n<<endl;
for(int p=;p<n;p++)
{
cout<<operators[n--p]<<data[p];
}
cout<<"="<<m<<endl;
return ;
}
一道program test题目的更多相关文章
- 一道有关switch-case题目
一道有关switch-case题目 /** * * @title:SwitchCase.java * @Package:com.you.hbxs.model * @Description:<h3 ...
- ES6原生Promise的所有方法介绍(附一道应用场景题目)
JS的ES6已经出来很久了,作为前端工程师如果对此还不熟悉有点说不过去.不过如果要问,Promise原生的api一共有哪几个?好像真的可以难倒一票人,包括我自己也忽略了其中一个不常用的API Prom ...
- 一道原生js题目引发的思考(鼠标停留区块计时)
我瞎逛个啥论坛,发现了一个题目,于是本着练手的心态就开始写起来了,于是各种问题接踵而至,收获不小. 题目是这样的: Demo: mouseenter与mouseover区别demo 跨浏览器的区块计数 ...
- 刷题——一道全排列的题目(Permutations)
题目内容: 思路其实很简单,那就是暴力交换顺序,直接迭代出所有可能.先在一个位置固定一个数字,然后对剩下的数字进行排列,用同样的方法对剩下的数字进行排列(因此要用到递归,不用也行,但是会复杂一点,这里 ...
- 关于Java的一道内存的题目
import java.util.Arrays; import java.util.EmptyStackException; public class MyStack<T> { priva ...
- 一道lambda表达式题目
#include <iostream> #include <functional> using namespace std; auto Pair = [](auto u, au ...
- 一道java笔试题目:Vector和ArrayList的区别
Vector和ArrayList的区别 线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构这些类均在java.util包中本文试图通过 ...
- 分享一道我认为非常有思考价值JavaScript题目
这是一道综合性的题目,如果你能快速清晰的分析整理出来,那我相信你对JavaScript是有一定的理解的了.我会先将题目的图片截取出来,供大家思考,在结尾在给出我的分析过程和答案,作个总结. 好,废话不 ...
- 一道C语言安全编码题目
1.前言 最近在网上看到一道C语言题目,用C语言实现一个函数,给定一个int类型的整数,函数输出逆序的整数,例如输入123,则输出字符串"321",,输入-123,则输出字符串&q ...
随机推荐
- Javascript 正则表达式笔记2
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- python--httplib模块使用
httplib是一个相对底层的http请求模块,其上有专门的包装模块,如urllib内建模块,goto等第三方模块,但是封装的越高就越不灵 活,比如urllib模块里请求错误时就不会返回结果页的内容, ...
- [C#] 區分 abstract、virtual、override 和 new
abstract.virtual.override和new是在類別的繼承關係中常用的四個修飾方法的關鍵字,在此略作總結. 1. 常用的中文名稱: n abstract => 抽象方法. n ...
- android listview 加载图片错乱(错位)
写道 今天晚上一个朋友介绍我看了一篇文章,也是解决android中listview在加载图片错位的问题,看了之后,感觉写的很好,自己也遇到这个问题,但是又不知道从何下手,看到这篇文章后,我的问题 ...
- Java学习笔记之:Java 定时任务
一.介绍 在应用里经常都有用到在后台跑定时任务的需求.比如网络运营商会在每个月的一号对数据进行一次统计.在java中我们可以继承timertask类来实现定时任务. 二.笔记 /** * 定时任务 * ...
- React事件属性
一.简介 二.滚动例子,滚动改变颜色 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta c ...
- dojo新建widget步骤----主要针对widget路径
一,新建目录 二,新建文件 三,写urtil widget代码 四,写RedTextDialog代码 五,写HTML代码 =====================如有不懂,结合http://blog ...
- SQL Agent Job ->> 通过sys.sysprocesses的program_name字段来定位对应的Job
;WITH T AS ( SELECT 'SQLAgent - TSQL JobStep (Job 0x'+ ),)),) + ' : Step ' + )) + ')' filter, j.job_ ...
- 最短JS判断是否为IE6(IE的写法) (转)
常用的 JavaScript 检测浏览器为 IE 是哪个版本的代码,包括是否是最人极端厌恶的 ie6 识别与检测. 代码如下: var isIE = !!window.ActiveXObject; v ...
- iMpACT中的Xilinx Prom烧录
2014-01-06 19:56:37 在http://bbs.21ic.com/icview-361925-1-1.html中有比较详细的介绍. 下面的转自:http://xilinx.eetren ...