今天去微创笔试面试了,分享题目

edwin_lin126 2006-05-20 07:27:31
2006年5月20日
参加微创的笔试面试
威海路755号 文新报业大厦40层,2号线石门一路下(4号口)。
在40层做笔试的感觉:一览众山下,心情豁达开朗 :>

职位:高级软件工程师

3点到4点 笔试(共两题)
1.有一个整数数组,例如:1,2,3
请编写一个函数,得到构成三角形的个数,并将这些三角形打印出来。

2.已知链表的头指针,如何判断该链表是循环链表。
解释:由1,2,3,2这四个节点构成的链表就称为循环链表

按时完成笔试,
感觉第2题做得比较好,
a>找最简单一个循环链表,即自己指向自己
b>用一个递归函数实现recrusion(Node* head)

第1题:
a>找规则,两边之和大于第三边
...全文
1126 31 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
snailbreak 2006-05-27
  • 打赏
  • 举报
回复
bool check_circ_list(CirList* Head)
{
CirList *p,*q;
p=Head;
q = Head->link;

while(p && q)
{
if(p==q)
return true;//has loop
p=p->link;
q=q->link->link;//modify
}

return false;//no loop
}
snailbreak 2006-05-27
  • 打赏
  • 举报
回复
bool check_circ_list(CirList* Head)
{
CirList *p,*q;
p=Head;
q = Head->link;

while(p && q)
{
if(p==q)
return true;//has loop
p=p->link;
q=q->link;
}

return false;//no loop
}
Cybergate 2006-05-26
  • 打赏
  • 举报
回复
细节不要忽略了。数组又没说都是不同元素,如果人家给个3 3 3 4 5, 楼上的程序全部会重复输出三个3 4 5,还有三个3 3 4。。。。。。

gemenhao 2006-05-23
  • 打赏
  • 举报
回复
//这个测试正确了
#include <algorithm>
#include <cstdlib>
#include <ctime>
using namespace std;

void make_triangle(int e[], int n)
{
int num = 0;
sort(e, e + n);
for (int i = 0; i < n - 2 ; i++)
for (int j = i+1; j < n - 1; j++)
for (int k = j+1; k < n; k++)
{
if (e[j] + e[i] > e[k])
printf("case %d:%d,%d,%d\n",++num, e[i],e[j],e[k]);
else
break;
}
}

int main()
{
srand(time(0));
int n = rand() % 10 + 3;
int *e = new int[n];
for (int i = 0; i < n; i++)
e[i] = abs(rand()) %100;
make_triangle(e,n);
delete e;
return 0;
}
case 1:36,63,71
case 2:36,63,76
case 3:36,63,78
case 4:36,63,82
case 5:36,63,84
case 6:36,63,93
case 7:36,71,76
case 8:36,71,78
case 9:36,71,82
case 10:36,71,84
case 11:36,71,93
case 12:36,76,78
case 13:36,76,82
case 14:36,76,84
case 15:36,76,93
case 16:36,78,82
case 17:36,78,84
case 18:36,78,93
case 19:36,82,84
case 20:36,82,93
case 21:36,84,93
case 22:63,71,76
case 23:63,71,78
case 24:63,71,82
case 25:63,71,84
case 26:63,71,93
case 27:63,76,78
case 28:63,76,82
case 29:63,76,84
case 30:63,76,93
case 31:63,78,82
case 32:63,78,84
case 33:63,78,93
case 34:63,82,84
case 35:63,82,93
case 36:63,84,93
case 37:71,76,78
case 38:71,76,82
case 39:71,76,84
case 40:71,76,93
case 41:71,78,82
case 42:71,78,84
case 43:71,78,93
case 44:71,82,84
case 45:71,82,93
case 46:71,84,93
case 47:76,78,82
case 48:76,78,84
case 49:76,78,93
case 50:76,82,84
case 51:76,82,93
case 52:76,84,93
case 53:78,82,84
case 54:78,82,93
case 55:78,84,93
case 56:82,84,93
lj860603 2006-05-23
  • 打赏
  • 举报
回复
To: lj860603(键键)

想法是对的,不过看错了公司哦: 微创 。。。

---------------

晕,对啊,呵呵,看错了。不过还是祝贺LZ。
gemenhao 2006-05-23
  • 打赏
  • 举报
回复
//第一题,排序是必要的
#include <algorithm>
#include <cstdlib>
#include <ctime>
using namespace std;

int make_triangle(int e[], int n)
{
int num = 0;
sort(e, e + n);
for (int i = 0; i < n; ++i)
for (int j = i; j < n; ++j)
for (int k = j; k < n; ++k)
{
if (e[j] + e[i] < e[k])
{
++num;
printf("%d,%d,%d\n", e[i],e[j],e[k]);
}
else
break;
}
return num;
}

int main()
{
srand(time(NULL));
int n = rand() % 1000 + 1;
int *e = new int[n];
for (int i = 0; i < n; i++)
e[i] = abs(rand()) %1000;
make_triangle(e,n);
delete e;
return 0;
}
chenhu_doc 2006-05-23
  • 打赏
  • 举报
回复
To: lj860603(键键)

想法是对的,不过看错了公司哦: 微创 。。。

我想microsoft....
lj860603 2006-05-23
  • 打赏
  • 举报
回复
个人感觉微软的面试题不难,感觉微软考的最大目的不是看能不能做出来,而是有另外标准,例如:代码格式、思维方式等。
HopeInDark 2006-05-23
  • 打赏
  • 举报
回复
m
edwin_lin126 2006-05-22
  • 打赏
  • 举报
回复
希望大家能像xl5338870(xlix)/duduhaha(三人行必有我师) /province_(雍昊)等同志学习,大家在这个平台上一起探讨。
province_ 2006-05-22
  • 打赏
  • 举报
回复
没必要排序吧,这题其实就是考你从N个元素里取三个元素的所有组合么,再加三角形三边关系判断。而且你的b+c>a && a-c<b其实不就是一个东西吗?^_^
p2 = p2 ? p2->next : NULL;那就直接p2=p2->next好了。
但是我还是不明白,你只是前后节点比较就能得出是否循环?尾节点指回了头(比如说)节点,你就判断不出了吧。
MorningTea 2006-05-21
  • 打赏
  • 举报
回复
恭喜,微创是不是做微软的外包,听网友说过

感觉笔试过了,其他好说
yuanchuang 2006-05-21
  • 打赏
  • 举报
回复
shanzhongyufu(山中渔夫) ( ) 信誉:100 2006-05-21 11:06:00 得分: 0


hxyman(自由不自在) ( ) 信誉:100 2006-05-21 10:28:00 得分: 0


呵呵,恭喜,我看错了,以为是微软...


我也是,呵呵
--------
me too!
billmo1986 2006-05-21
  • 打赏
  • 举报
回复
一个小时内作出来还是有难度的呀
wumingchenchao 2006-05-21
  • 打赏
  • 举报
回复
恭喜啊
shanzhongyufu 2006-05-21
  • 打赏
  • 举报
回复
hxyman(自由不自在) ( ) 信誉:100 2006-05-21 10:28:00 得分: 0


呵呵,恭喜,我看错了,以为是微软...


我也是,呵呵
diedknight 2006-05-21
  • 打赏
  • 举报
回复
恭喜LZ咯
hxyman 2006-05-21
  • 打赏
  • 举报
回复
呵呵,恭喜,我看错了,以为是微软...
liusujian02 2006-05-21
  • 打赏
  • 举报
回复
收藏一下
jixingzhong 2006-05-21
  • 打赏
  • 举报
回复
没听过 微创 ...
不过还是恭喜楼主先 ^_^
加载更多回复(11)

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧