这次笔试是今年校招我参加的第一次笔试。。出了很多状况,基础知识不扎实,导致选择题耽误了太多时间,导致后面的题目没做完,编程题也没有在

时间内写出来,基本没有面试机会了。不过我继续研究第二个编程题,在10几分钟后做了出来。

这个题目具体已经不记得了,但是大概意思还是记得,我们把由4和7组成的数,按小大排序,例如:4 7 44 47 74 77 444 447 474 477 744 747 774 777

他们的序号依次为1,2,3,4.....,题目的输入是每行输入一个整数,可以很大(好像是最大为10的18次方),然后你输出对应的由4和7组成的数。

例如:

输入  2

3

14

输出就为

7

44

777

这个题目拿到手后,感觉就是要进行移位再与的操作,因为4747和0101多么的像,但是在笔试过程中,没有分析好怎么控制,单纯的想除以2,求关于2的余数就可以

得到结果。自然而然没有做出来,其实这是一个关于等比数列的问题,来决定这个整数对应的数到底有几位

1   2/   3   4   5   6/   7    8    9    10    11    12    13    14/   15

4   7/  44 47 74 77/  444 447 474 477 744 747   774   777/ 4444

/2   /       4           /                    8                                  /    16

我们的思路是把这个数减去它前面的等比数列之和,再减一,对应的就是0~2的n次方-1之间的数,比如 1-2 对应的就是0,1,(二进制为0,1),3-6对应的就是0-3(

二进制为00,01,10,11),然后我们对1进行移位操作,然后与这个0~2的n次方-1之间的数做&(与操作),如果为1,则输出7.如果为0,则输出4即可

下面是代码:

#include<iostream>
using namespace std;
int main()
{
unsigned long long k;
while (cin >> k)
{
unsigned long long sum = 0, num = 1;
unsigned int len = 1;
for (;;++len)
{
sum += num * 2;
num *= 2;
if (k <= sum)break;
}
sum -= num;
k = k - sum - 1;
for (unsigned int i = len;i >= 1;--i)
{
if (k&(unsigned long long)(1 << (i - 1)))cout << 7;
else cout << 4;
}
cout << endl;
}
return 0;
}

结果截图:

京东校招笔试(C++方向)编程题的更多相关文章

  1. 昨晚京东校招笔试,没考一道.net,全考java了

    我在大四之前我都觉得跟着微软走是正确的,这条大腿很粗!但是现在我也开始不那么认为了,现在每天在网上找招聘信息,稍微大点的公司都是招java的,很少招.net的!别说什么你学的好不怕没人招之类的话,大公 ...

  2. 2018春招-美团后台开发方向编程题 (python实现)

    第一题:字符串距离 题目: 给出两个相同长度的由字符 a 和 b 构成的字符串,定义它们的距离为对应位置不同的字符的数量.如串”aab”与串”aba”的距离为 2:串”ba”与串”aa”的距离为 1: ...

  3. 去哪儿网2017校招在线笔试(前端工程师)编程题及JavaScript代码

    编程题很简单.整个试卷结构为: 一.问答题: 对前端的理解,了解哪些框架库? 二.在线编程题:身份证分组 如下第一道:身份证分组 三.在线编程题:身份证分组.统计字符.酒店价格(三选二) 如下第二三四 ...

  4. 美团点评2017校招笔试真题-算法工程师A

    美团点评2017校招笔试真题-算法工程师A 1.下面哪种STL容器的实现和其它三个不一样 A. set B. deque C. multimap D. map 正确答案: B STL的容器可以分为以下 ...

  5. JavaScript编程题(含腾讯2016校招题)

    作者:ManfredHu 链接:http://www.manfredhu.com/2016/04/02/15-veryGoodForUsing/ 声明:版权所有,转载请保留本段信息,否则请不要转载 几 ...

  6. 2017 CVTE春招内推专场 C/C++软件开发岗笔试编程题

    先来一波吐槽:选择题全是不定项选择,考的内容在我看来,"反正我接受唔到咯". 比如: 1.Windows操作系统某个通信机制(具体题目忘了,反正答案我选了个熟悉的名词"消 ...

  7. 美团点评2017校招笔试真题-算法工程师B

    美团点评2017校招笔试真题-算法工程师B 1.以下关于经典的k-means聚类的说法哪个是错误的? A:k-means聚类算法是全局收敛的 B:k-means的聚类结果和初始聚类中心点的选取有关 C ...

  8. 网易2019校招内推编程题-瞌睡-C++实现

    [编程题] 瞌睡 时间限制:1秒 空间限制:262144K 小易觉得高数课太无聊了,决定睡觉.不过他对课上的一些内容挺感兴趣,所以希望你在老师讲到有趣的部分的时候叫醒他一下.你知道了小易对一堂课每分钟 ...

  9. 网易2019校招内推编程题-俄罗斯方块-C++实现

    [编程题] 俄罗斯方块 时间限制:1秒 空间限制:262144K 小易有一个古老的游戏机,上面有着经典的游戏俄罗斯方块.因为它比较古老,所以规则和一般的俄罗斯方块不同.荧幕上一共有 n 列,每次都会有 ...

随机推荐

  1. kaptcha随机验证码的使用详解,超实用

    效果图: 官方地址:https://code.google.com/p/kaptcha/w/list 1.把下载的kaptcha-2.3.2.jar添加到lib中 2.配置web.xml增加servl ...

  2. oracle 变量赋值

    在oracle 中使用 select 字段 into 变量 from 表 where 条件 这种方法给变量赋值时和MSSQL的行为有比较大区别. 在MSSQL中如果在该表中未检索到任何行,则变量的值保 ...

  3. MySQL 体系结构以及各种文件类型学习汇总 (转)

    1,mysql体系结构 由数据库和数据库实例组成,是单进场多线程架构. 数据库:物理操作系统文件或者其它文件的集合,在mysql中,数据库文件可以是frm.myd.myi.ibd等结尾的文件,当使用n ...

  4. 【linux】which和whereis

    which和whereis都是查询命令的指令.区别的是: which能查询到命令所在位置: [root@andon tmp]# which ls alias ls='ls --color=auto' ...

  5. linux 解压,源码包

    从网络上下载到的源码包, 最常见的是 .tar.gz 包, 还有一部分是 .tar.bz2包   要解压很简单 :   .tar.gz     格式解压为          tar   -zxvf   ...

  6. objective-c 随便记记

    1.tableview滚动到某一位置 [tableViewShow setContentOffset:CGPointMake(0, 0) animated:YES]; //解决tableView分割线 ...

  7. nova分析(6)—— nova service启动过程

    Nova project下面具有多个service,api,compute,sceduler等等,他们的启动过程都几乎类似,这一篇博客就详细记录nova-sceduler的启动过程.文章中贴出的源码都 ...

  8. 如何解决WebkitBrowser使用出错“Failed to initialize activation context”

    本文转载自:http://www.cnblogs.com/supjia/p/4695671.html 本篇文章主要介绍了"如何解决WebkitBrowser使用出错“Failed to in ...

  9. bzoj3163: [Heoi2013]Eden的新背包问题

    Description “寄没有地址的信,这样的情绪有种距离,你放着谁的歌曲,是怎样的心心静,能不能说给我听.”失忆的Eden总想努力地回忆起过去,然而总是只能清晰地记得那种思念的感觉,却不能回忆起她 ...

  10. C# json提取多层嵌套到数组

    string jsonText = "{'name':'test','phone':'18888888888','image':[{'name':'img1','data':'data1'} ...