今天下午参加的新浪研发笔试,报的职位是系统开发工程师,大部分是选择题,主要考察的是基础知识,有几个不会的题先记录如下:
1,求1到100内,任取5个不同整数之和小于100的取法有多少种。列出主要思路即可。
2,先有a到b的通道,a只能发送0到9这十个数字到b,现要求设计一个通信协议,使得a可以向b发送任意的数字,并分析这种协议可能遇到的问题和解决办法。
3,如何检测linux系统的瓶颈,如cpu,内存,带宽等。
4,epoll命令的作用。
5,给一个函数:
void fun(void)
{
}
int main()
{
int x = 1;
int y = 2;
fun();
printf("x,y%d %d\n",x,y);
}
问,如何实现函数fun,使得最后的打印结果不是1 2
想到第一题答案,先枚举,然后找规律,答案如下:
89+1+2+3+4 = 99 即可以取最大数89,其他四个数唯一确定:1,2,3,4,此时只有一种解法
88+1+2+3+4 88+1+2+3+5 < 100,最大数88时,有1+1=2取法
最大87时,有1234,1235,1236,1245,四种取法2+2=4
最大86时,有前面四种加上1237,1246,1345,一共4+3=7种取法
最大85时,前面7种再加上1238,1247,1256,1346,2345,一共7+5=12种取法
最大84时,前面12再加上1239,1248,1257,1347,1356,2346,一共12+6=18种
最大83时,18加上123 10,1249,1258,1267,1348,1357,1456,2347,2356一共18+9=27种
最大82时,25加上123 11,124 10,1259,