- 最后登录
- 2013-8-13
- 注册时间
- 2006-7-20
- 威望
- 95
- 金钱
- 3146
- 贡献
- 202
- 阅读权限
- 70
- 积分
- 3443
- 日志
- 0
- 记录
- 0
- 帖子
- 277
- 主题
- 40
- 精华
- 2
- 好友
- 5
签到天数: 8 天 [LV.3]偶尔看看II - 注册时间
- 2006-7-20
- 最后登录
- 2013-8-13
- 积分
- 3443
- 精华
- 2
- 主题
- 40
- 帖子
- 277
|
附:学C++不得不看的一篇文章
学C++不得不看的一篇文章& R# H$ D: o! q
2007-01-18 作者: 来源:enet论坛' B- c& C$ R ~6 J" U* T% Z1 _1 ?, {
6 O# Q. C' r" k h' X* l( a
作为一名大四的学生,我面试过不少的单位,有成功的也有失败的,但是对我来说所有的失败在某种意义上都是一种成功,特别是我下面写的这些,写这篇文章的时候,我已经签了南京的一家软件公司,但是想起今年2月21日我面试苏州台湾的IT公司的经历联想到我们现在学习编程的一些情况,我真的深有感触,这次面试使我深深的体会到了失败但也收获了很多。我要说的将分成三部分: 1 x. V6 `0 E& ?5 i8 Y; Z h! C! e" i
1.是我面试的具体经过 0 B0 N, {! x3 O# n+ m
2.是由面试想到的 6 b# I4 C" V" k7 A$ f" q! ^3 `
3.现今我应该做的。
' p+ C" j' [% V 当然这些话很大程度上是我个人的意见,不可能完全得到大家的赞同,所以在某些观点上如果哪位朋友觉得跟我的有很大出入,请不要介意,也不要对我攻击,就当我没有说过,欢迎和我联系共同探讨这些问题!我的EMAIL:wutao8@263.net
# g8 n* R5 x' ^1 `% i, I 1.面试经过 : I* ]4 _$ G% v$ I, i- h h
大约在年前我接到了台湾瑞晟(Realtek)苏州公司的面试通知,通知我2月21日到苏州工业园区面试,接到面试后的几天我把一些专业课温习了一遍,特别是C++和数据结构,由于大学几年里,我一直专研这些方面,加上通过了高级程序员的考试,对于一些常用的算法我差不多也达到了烂熟于胸的地步,当时的感觉是如果问了我这些方面的问题我应该是没有问题的!
; G( o1 n. W9 B. g n6 b2 i 21日那天我被安排在4:30面试,由一位技术人员单独给我面试,在问了一些简单的问题之后他给我出了一道编程题目,题目是这样的: ( t. f* n8 N5 B. L1 x' \" n
(由于具体面试的题目比较烦琐,我将其核心思想提取出来分解成了两个独立的简单的问题,有可能问题分解的不当,请大家见谅,实际面试了一个的问题但比其复杂很多,而且涉及一些高等数学变换) . ~8 l' V; l7 p6 N6 L3 C a
1) 写一个函数计算当参数为n(n很大)时的值 1-2+3-4+5-6+7......+n
7 b9 O9 |4 b) L4 O, | 哼,我的心里冷笑一声!没想到这么简单,我有点紧张的心情顿时放松起来!
1 \# |: e, X4 Y4 V 于是很快我给出我的解法:
6 s. |% U( a' l0 h- T long fn(long n) % }# V h0 X# j! V) e) i
{ 6 W8 g. Z2 }0 ?. ?- o8 G( b
long temp=0;
' S _. I+ }6 m5 \* { int i,flag=1;
3 _# Q- [5 D1 b$ c ] if(n<=0)
! R }/ u- D# j2 n0 W$ x+ } k {
* @: e0 V3 j( x9 a- c# n7 a0 H% v( C printf("error: n must > 0); ) C3 A# }) h }4 `- O* g
exit(1); 0 Z' ^: u8 l; c4 z+ p; o+ h
}
0 H" t5 N I/ n4 [6 D for(i=1;i<=n;i++)
0 u: {. L# l6 B, I( ^. A {
3 T6 X1 M) v3 [6 s& r- O6 ^& F temp=temp+flag*i;
) i3 v! M2 @ A1 D6 l flag=(-1)*flag;
- e3 x! D7 M# i } 7 t- [, c0 F0 E5 k5 k0 Z
return temp; / V/ L. Z8 C$ A/ L( t }' n
} % Z' W8 U' k/ F5 E1 `0 o1 L K
搞定!当我用期待的目光看着面试官的时候,他微笑着跟我说,执行结果肯定是没有问题!但当n很大的时候我这个程序执行效率很低,在嵌入式系统的开发中,程序的运行效率很重要,能让CPU少执行一条指令都是好的,他让我看看这个程序还有什么可以修改的地方,把程序优化一下!听了这些话,我的心情当时变的有点沉重,没想到他的要求很严格,之后我对程序进行了严格的分析,给出了改进了的方案!
1 p9 }, E. E7 n long fn(long n)
0 N" W0 O: m( C# h1 g {
1 U2 Q# N8 O Z3 K8 c4 @' ~% K long temp=0;
) f! y& D: `# t, r1 u int j=1,i=1,flag=1;
. h$ X% P3 a/ U4 l if(n<=0) : F. [2 E$ ~% b! E- s; P
{
: b+ V5 |1 f1 W- M) M% A' c printf("error: n must > 0); 1 I9 B4 a$ ` f+ _, Y4 c
exit(1);
! U% S' n6 X: @) x$ ^# } }
: @) g1 C) ]7 N5 f9 C) ~) ^! _. e" T while(j<=n)
, g, h) p0 @5 T6 d _, M5 H {
$ Q* l) O! z1 q# u, [ temp=temp+i;
; \* y7 F8 s' `$ ~( t7 e, ]1 P# q, K i=-i;
, }5 d0 f& Q+ i7 W* E# m; T; L i>0?i++:i--; 0 _ N1 E5 }7 h2 N7 _. V1 ` H
j++;
t$ r+ e5 S5 P/ w! e% P2 K } 9 T% |1 ]- ^' S: R% P. w5 b3 V
return temp; 1 w- y: p* z+ l) n) f* z' [
}" x4 z0 Z( t8 J) J
接下页 |
|