麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

學編程的人不能不看的好文章(1)

2019-11-18 13:41:19
字體:
來源:轉載
供稿:網友

  學編程的人不能不看的好文章(1)

做為一名大四的學生,我面試過不少的單位,有成功的也有失敗的,但是對我來說所有的失敗在某種意義上都是一種成功,非凡是我下面寫的這些,寫這篇文章的時候,我已經簽了南京的一家軟件公司,但是想起今年2月21日我面試蘇州臺灣的99v公司的經歷聯想到我們現在學習編程的一些情況我真的深有感慨,這次面試使我深深的體會到了失敗但也收獲了很多。我要說的將分成三部分,
1.是我面試的具體經過
2.是由面試想到的
3.現今我應該做的。
當然這些話很大程度上是我個人的意見,不可能完全得到大家的贊同,所以在某些觀點上假如哪位朋友覺得跟我的有很大出入,請不要介意,也不要對我攻擊,就當我沒有說過,歡迎和我聯系共同探討這些問題!我的EMAIL:[email protected]
1.面試經過大約在年前我接到了臺灣瑞晟(Realtek)蘇州公司的面試通知,通知我2月21日到蘇州工業園區面試,接到面試后的幾天我把一些專業課溫習了一遍,非凡是C++和數據結構,由于大學幾年里,我一直專研這些方面,加上通過了高級程序員的考試,對于一些常用的算法我差不多也達到了爛熟于胸的地步,當時的感覺是假如問了我這些方面的問題我應該是沒有問題的!21日那天我被安排在4:30面試,由一位技術人員單獨給我面試,在問了一些簡單的問題之后他給我出了一道編程題目,題目是這樣的:
(由于具體面試的題目比較煩瑣,我將其核心思想提取出來分解成了兩個獨立的簡單的問題,有可能問題分解的不當,請大家見諒,實際面試了一個的問題但比其復雜很多,而且涉及一些高等數學變換)
1) 寫一個函數計算當參數為n(n很大)時的值 1-2+3-4+5-6+7......+n
哼,我的心里冷笑一聲!沒想到這么簡單,我有點緊張的心情頓時放松起來!
于是很快我給出我的解法:
long fn(long n)
{
long temp=0;
int i,flag=1;
if(n<=0)
{
exit(1);
}
for(i=1;i<=n;i++)
{
temp=temp+flag*i;
flag=(-1)*flag;
}
return temp;
}
搞定!當我用期待的目光看著面試官的時候,他微笑著跟我說,執行結果肯定是沒有問題!但當n很大的時候我這個程序執行效率很低,在嵌入式系統的開發中,程序的運行效率很重要,能讓CPU少執行一條指令都是好的,他讓我看看這個程序還有什么可以修改的地方,把程序優化一下!聽了這些話,我的心情當時變的有點沉重,沒想到他的要求很嚴格,之后我對程序進行了嚴格的分析,給出了改進了的方案!
long fn(long n)
{
long temp=0;
int j=1,i=1,flag=1;
if(n<=0)
{
printf("error: n must > 0);
exit(1);
}
while(j<=n)
{
temp=temp+i;
i=-i;
i>0?i++:i--;
j++;
}
return temp;
}
雖然我不敢保證我這個算法是最優的,但是比起上一個程序,我將所有涉及到乘法指令的語句改為執行加法指令,既達到要題目的要求而且運算時間上縮短了很多!而代價僅僅是增加了一個整型變量!但是我現在的信心已經受了一點打擊,我將信將疑的看者面試官,他還是微笑著跟我說:“不錯,這個程序確實在效率上有的很大的提高!”我心里一陣暗喜!但他接著說這個程序仍然不能達到他的要求,要我給出更優的方案!天啊!還有優化!我當時真的有點崩潰了,想了一會后,我請求他給出他的方案!然后他很爽快的給出了他的程序!
long fn(long n)
{
if(n<=0)
{
printf("error: n must > 0);
exit(1);
}
if(0==n%2)
return (n/2)*(-1);
else
return (n/2)*(-1)+n;
}
搞笑,當時我目瞪口呆,沒想到他是這個意思,這么簡單的代碼我真的不會寫嗎,但是我為什么沒有往那方面上想呢!他說的沒有錯,在n很大很大的時候這三個程序運行時間的差別簡直是天壤之別!當我剛想開口說點什么的時候,他卻先開口了:“不要認為CPU運算速度快就把所有的問題都推給它去做,程序員應該將代碼優化再優化,我們自己能做的決不要讓CPU做,因為CPU是為用戶服務的,不是為我們程序員服務的!”多么精辟的語言,我已經不想再說什么了!接著是第二個問題:
2),他要求我用一種技巧性的編程方法來用一個函數實現兩個函數的功能n為如:fn1(n)=n/2!+n/3!+n/4!+n/5!+n/6!
fn2(n)=n/5!+n/6!+n/7!+n/8!+n/9! 現在用一個函數fn(int n,int flag)實現,當flag為0時,實現fn1功能,假如flag為1時實現fn2功能!他的要求還是效率,效率,效率!說實在話,假如我心情好的話我應該能給出一種比較好的算法,但我那時真的沒有什么心思再想了,我在紙上胡亂畫了一些諸如6!=6*5!的公式后直截了當的跟他說要他給出他的答案!面試官也沒有說什么,給出了他的思路:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91麻豆精品国产91久久久无需广告 | av视在线 | 综合网天天色 | 热99视频 | 亚洲视频在线观看免费视频 | 护士xxxx| 天天看成人免费毛片视频 | 特片网久久| 久久精品国产99国产精品澳门 | 国产一区二区三区手机在线 | 97久久精品一区二区三区观看 | av免费不卡国产观看 | a黄网站| 黄色特级片黄色特级片 | 黄色视频a级毛片 | 美国人成人在线视频 | 黄网站在线免费看 | 亚洲综合视频网 | 亚洲第一成人久久网站 | 一级电影中文字幕 | 亚洲精品一区二区三区大胸 | 久久一本日日摸夜夜添 | 男女羞羞的视频 | 羞羞草视频 | 免费高清一级欧美片在线观看 | 久久久成人动漫 | 嫩草影院在线观看网站成人 | 男女羞羞的视频 | 日日爱影院 | 黄色成人小视频 | www.17c亚洲蜜桃 | 成人午夜视频免费在线观看 | 久久最新网址 | 有色视频在线观看 | 久久久麻豆 | 毛片免费视频在线观看 | 国产亚洲精品久久久久久网站 | 久久久久99一区二区三区 | 色婷婷久久久亚洲一区二区三区 | japanese嫩21videos | 国产精品久久久久久久亚洲按摩 |