[面试题]EMC易安信面试题解

1.

除以59的余数是多少。

来自wiki:费马小定理数论中的一个定理:假如a是一个整数p是一个質数,那么

如果a不是p的倍数,这个定理也可以写成

这个书写方式更加常用。

答案是38,这个题目考费马小定理;

2.int a=1000000000, b=2000000000; a=a+b;b=a-b;a=a-b; 最后a,b是多少?

正常交换。 不过有溢出的危险。实际程序中不建议这么做。
 
3.如何判别一个数是unsigned

a>=0 && ~a>=0

4.上台阶,每次可走一台阶和两台阶,问上10个台阶有多少种走法

f(n) = f(n-1) + f(n-2)   f(1) = 1  实际上就是Fabonacci数列。 答案为89
 
5.100层楼,两个鸡蛋。某层之上扔鸡蛋就会碎。问至少要测试多少次才能试出这个层数。
据传这是google的面试题。数学建模很重要!!!

设x个鸡蛋扔y次可以测试F层,则F=f(x,y).

f(1,1)=1,f(1,2)=2........f(1,n)=n

f(2,1)=1,对于f(2,2),先测试一次,如果第一个鸡蛋没有破,则测试该层之上的层数为f(2,1),如果第一个鸡蛋破了,则测试该层之下的层数为f(1,1). 所以f(2,n)=1+f(1,n-1)+f(2,n-1).

因此f(2,1)=1, f(2,2)=3, f(2,3)=6, f(2,4)=10, f(2,5)=15, f(2,6)=21

=>f(2,n)=n*(n+1)/2

=>n=14

具体方法是先从14楼开始抛第一次;如果没碎,再从27楼抛第二次;如果还没碎,再从39楼抛第三次;如果还没碎,再从50 楼抛第四次;如此,每次间隔的楼层少一层。这样,任何一次抛棋子碎时,都能确保最多抛14次可以找出临界楼层。

6.25匹马,每次比赛可选5匹马赛出次序(无法计时)。问至少要比赛多少次才能确定跑得最快,次快和第三快的三匹马。

7次。首先分为5组,每组进行一次比赛,然后每组的头一名共五匹马比赛一次。假设第一组快于第二组快于第三组依次。最后一次安排第一组的二三名和第二组的一二名和第三组的第一名。

7.A、 B、C三个瓶子,A瓶子是空的,B瓶子里有1个白球1个黑球,C瓶子里有1000个白球和1280个黑球。现在蒙着眼睛从C瓶子里取两个球放到A瓶子里。 分两个阶段从三个瓶子中摸球(每次摸球后放回再摸下一次),摸到白球赢55000美元,摸到黑球什么也得不到也不损失什么。问为了使两次的收益最大,应该 采取什么策略?

这道题目没看懂什么意思。。。。

8. 大题1:插入一个节点到一个有序链表。   O(n)的很好写了,有O(logn)的算法???

大题2:循环的有序数组(比如1,2,3,4,5,-3,-2,-1这种数列)里查找一个数。

(如何二分?分段二分,下篇文章叙述)

大题3:在一个正整数序列中,求和最大的非相邻子序列(序列任两元素在原序列里都不相邻)(dp?比如,1,2,3,5,4,答案应为8)

可以用动态规划,状态转移矩阵如下:

max[0] = num[0]
max[1] = max(num[0], num[1])
max[i] = max(max[i-2] + num[i], max[i - 1])

不止适合都是正整数的,还适合有负数的情况。

int mycal(int len, int b[])

{

if (len==1)

return b[len-1];

if (len==2)

return (b[len-1]>b[len-2]?b[len-1]:b[len-2]);

if (len>=3)

return max(mycal(len-2, b)+b[len-1], mycal(len-1, b));

}

EMC题的更多相关文章

  1. EMC题2

    易安信笔试题分享:1 protected成员函数能被肿么调用2 “has-a” relationship是指的啥,答案有instance, reference, pointer等...3 int, c ...

  2. 设计上如何避免EMC问题

    最近经常被问到EMC相关的问题,比如怎么设计才能避免EMC的问题,我想经常关注高速先生的同鞋们有机会肯定也会问到这个问题.首先这是一个系统 性的问题,不是那么好回答,尤其是对于聚焦在高速信号这个领域而 ...

  3. java基础集合经典训练题

    第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...

  4. 【Java每日一题】20170106

    20170105问题解析请点击今日问题下方的"[Java每日一题]20170106"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  5. 【Java每日一题】20170105

    20170104问题解析请点击今日问题下方的"[Java每日一题]20170105"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  6. 【Java每日一题】20170104

    20170103问题解析请点击今日问题下方的"[Java每日一题]20170104"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  7. 【Java每日一题】20170103

    20161230问题解析请点击今日问题下方的"[Java每日一题]20170103"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  8. SQL面试笔试经典题(Part 1)

    本文是在Cat Qi的原贴的基础之上,经本人逐题分别在MySql数据库中实现的笔记,持续更新... 参考原贴:http://www.cnblogs.com/qixuejia/p/3637735.htm ...

  9. 刷LeetCode的正确姿势——第1、125题

    最近刷LeetCode比较频繁,就购买了官方的参考电子书 (CleanCodeHandbook),里面有题目的解析和范例源代码,可以省去非常多寻找免费经验分享内容和整理这些资料的时间.惊喜的是,里面的 ...

随机推荐

  1. 张高兴的 Xamarin.Forms 开发笔记:Android 快捷方式 Shortcut 应用

    一.Shortcut 简介 Shortcut 是 Android 7.1 (API Level 25) 的新特性,类似于苹果的 3D Touch ,但并不是压力感应,只是一种长按菜单.Shortcut ...

  2. php生成雪花图像(不美观请见谅)

    <?php /*  //新建图像 //雪花  @header("Content-Type:image/png"); $w = 500; $h = 500; //create ...

  3. URL加载页面的过程

    总体过程: 1.DNS解析 2.TCP连接 3.发送HTTP请求 4.服务器处理请求并返回HTTP报文 5.浏览器解析渲染页面 6.连接结束 一.DNS解析 在互联网中,每一台机计算机的唯一 标识是他 ...

  4. ajax调用数据案例,二级联动

    题目:请针对移动端web浏览器制作一个结账数据信息展示页面 要求: 1. 页面样式除不使用表格呈现外,可自由选择其他呈现方式 2. 需符合移动端操作习惯 3. 可根据服务区.门店查询结账信息 4. 可 ...

  5. DevOps/TestOps概念

    天下大势分久必合合久必分,早期的软件开发只有软件工程师一人完成,为了提高效率逐渐实行分工模式:开发.测试.运维.不同角色担任不同的任务.分工越来越细之后带来了问题也越来越突出,那就是各角色之间的沟通成 ...

  6. Git添加远程库和从远程库中获取

    一. Git添加远程库 1. 在本地新建一个文件夹,在该文件夹使用Git工具,运行$ git init,将该文件夹变为本地Git仓库,同时会生成一个隐藏的.git文件夹. 2. 在该文件夹中用Note ...

  7. Nginx中并发性能相关配置参数说明

    worker_processes:开启worker进程的数目,通常可设置为CPU核心的倍数.在不清楚的情况下,可设置成一倍于CPU核心数或auto(Nginx将自动发现CPU核心数). worker_ ...

  8. 【Python3之内置函数】

    内置函数 简单来说就是python3本身就自带的函数. abs(x) abs()返回一个数字的绝对值.如果给出复数,返回值就是该复数的模 print(abs(-1100)) 输出:1100 all() ...

  9. 如何利用git shell提交代码到github

    在很早之前我根据找到的一些资料以及自己的实践总结了一篇如何将VS2015上的代码上传到GitHub上,后来我发现有小伙伴私信我,说跟我上面写的不一样,但是那段时间也比较忙,当我发现有人私信的时候差不过 ...

  10. C#设计模式之总结篇

    一.引言     C#版本的23种设计模式已经写完了,现在也到了一个该总结的时候了.说起设计模式,我的话就比较多了.刚开始写代码的时候,有需求就写代码来解决需求,如果有新的需求,或者需求变了,我就想当 ...