博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
搜狐面试题
阅读量:6084 次
发布时间:2019-06-20

本文共 2988 字,大约阅读时间需要 9 分钟。

1、1到1亿的数字之和?

方法一:分析:两数相加如果有进位,则两数数字之和大于和的各位数字之和。
例如:23+46=69,2+3+4+6=6+9;而97+8=105,9+7+8>1+0+5。
所以,要把1——100000000这样分组:(0,99999999),(1,99999998),(2,99999997)(3,99999996)……(49999999,50000000),共50000000组,还剩下数字100000000。
这样每一组的数字之和都是:9*8=72
总和为:72*50000000+1=3600000001(36亿零1)
方法二:1到1亿的自然数,求所有数的拆分后的数字之和,如286 拆分成2、8、6
思路:递推方法求解:
1.0-9的和为 a1=(0+9)*10/2
2.0-99时:分析共有100个数,十位上有10对0-9,个位上也是10对0-9(讲个位数上填0补充),
此时a2=2*10*(0+9)*10/2;
3.0-999时:共有1000个数,百位上有1000对0-9,十位上有10对0-9,个位上也是10对0-9,
此时a3=3*100*(0+9)*10/2;
依次类推:当位数为n时,有an=n*(10的n-1次方)*(0+9)*10/2;
上述题目答案即为(0-99999999)时:a8=8*(10的7次方)*(0+9)*10/2,然后加1就可以了。
2、有11个点,每两点之间连一条直线,共有48条线,那么这11个点可以组成几个三角形?
3、甲乙丙丁四个人因涉嫌抢劫银行被捕,在闻讯过程中,警察发现其中一个就是罪犯。他们的口供如下:
甲:是丙偷得;
乙:我没有偷;
丙:我也没偷;
丁:如果乙没偷,我也没偷。
其中只有一个人说的是假话,请你判断出哪一个是罪犯。
4、有12个球,外形都一样,其中有一个质量和其他的不一样,给你一架天平,请问最少称几次可以把那个不同的球找出来。
5、将“I came from Beijing.”变成“Beijing. From came I”(以单词为单位倒序,单词后面的符号不变)

#include 
using namespace std;void reverse_part(char*,int pBegin,int pEnd);void reverse(char *str){ //n为字符串长度 int n=strlen(str)-1; reverse_part(str,0,n); int pBegin=0,pEnd=0; while(str[pEnd+1]){ if(str[pEnd]!=' ' && str[pEnd]!='\0') ++pEnd; //找到空格 else{ reverse_part(str,pBegin,pEnd-1); //如果下一个还是空格 while(str[pEnd+1]!='\0' && str[pEnd+1]==' ') ++pEnd; pBegin=++pEnd; } } cout<
<
///// Reverse a string between two pointers// Input: pBegin - the begin pointer in a string//        pEnd   - the end pointer in a string///void Reverse(char *pBegin, char *pEnd){      if(pBegin == NULL || pEnd == NULL)            return;      while(pBegin < pEnd)      {            char temp = *pBegin;            *pBegin = *pEnd;            *pEnd = temp;            pBegin ++, pEnd --;      }}///// Reverse the word order in a sentence, but maintain the character// order inside a word// Input: pData - the sentence to be reversed///char* ReverseSentence(char *pData){      if(pData == NULL)            return NULL;      char *pBegin = pData;      char *pEnd = pData;      while(*pEnd != '\0')            pEnd ++;      pEnd--;      // Reverse the whole sentence      Reverse(pBegin, pEnd);      // Reverse every word in the sentence      pBegin = pEnd = pData;      while(*pBegin != '\0')      {            if(*pBegin == ' ')            {                  pBegin ++;                  pEnd ++;                  continue;            }            // A word is between with pBegin and pEnd, reverse it            else if(*pEnd == ' ' || *pEnd == '\0')            {                  Reverse(pBegin, --pEnd);                  pBegin = ++pEnd;            }            else            {                  pEnd ++;            }      }      return pData;}

6、用冒泡法排序。

7、双链表中插入一个节点
8、编写一个Allocator,用来代替new,要求效率和稳定性不低于系统new
9、要求你写出一个高性能的web-server,说说你的解决方案
逻辑题:
1. 一块钱一瓶汽水,两个空瓶可以换一瓶汽水,20块钱最多能喝多少瓶汽水。20+20/2=30
2. 一个三角形的定点各有一只蚂蚁,问三只蚂蚁都不相撞的几率。2/(2*2*2)=1/4
3. 有一个3升的杯子和一个5升的杯子,如何量出4升的水。2+2

转载地址:http://aikwa.baihongyu.com/

你可能感兴趣的文章
Solaris11性能监控--处理器
查看>>
内存模型
查看>>
如何快速开发网站?
查看>>
tomcat等服务器返回给页面的数字分别表示的意思!
查看>>
我的友情链接
查看>>
个人博客
查看>>
我的友情链接
查看>>
mysql 参数 innodb_flush_log_at_trx_commit
查看>>
Windows Server 2012 远程桌面,你需要具有通过远程桌面服务进行登录的权限
查看>>
Linux流量监控工具 – iftop
查看>>
【VMCloud云平台】SCCM(八)OSD(四)
查看>>
JavaTM Virtual Machine Profiler Interface (JVMPI)
查看>>
使用IKAnalyzer分词计算文章关键字并分享几个分词词典
查看>>
分布式进程管理
查看>>
Python下用List对员工信息表进行模糊匹配
查看>>
Mysql 主从复制
查看>>
【SQL Server备份恢复】数据库还原
查看>>
Angular js http请求发送和jquery的ajax一样的数据设置方式
查看>>
Andrid在一个程序中启动另一个程序
查看>>
mysql++ (Tserver安装问题)
查看>>