廣東北電長沙站的程式筆試題

2021-04-12 11:38:00 字數 1691 閱讀 1826

我沒去參加筆試,但據比木同學說,廣電的筆試很基礎,總共就四道題:1、josephus數小孩問題。2、二分查詢法。3、用棧實現遞迴。4、有關通訊、網路方面的漢譯英、英譯漢。

用棧實現遞迴,我以前專門寫過一篇文章。讀者可以去翻來看看。現在,我自己來解答前兩個問題。

1、josephus問題的描述:編號是1,2,……,n的n個人按照順時針方向圍坐一圈,每個人只有乙個密碼(正整數)。一開始任選乙個正整數作為報數上限值m,從第乙個人開始順時針方向自1開始順序報數,報到m時停止報數。報m的人出列,將他的密碼作為新的m值,從他在順時針方向的下乙個人開始重新從1報數,如此下去,直到所有人全部出列為止。設計乙個程式來求出出列順序。

解這道題有兩種方法,一種是遞迴法、一種是選代法。給出程式://

//遞迴法求解joseph問題,//

//m:第一次的報數次數

//pos:報數的起始位置

//a[2]:乙個二維陣列,a[i][0]存放成員的編號,a[i][1]存放成員的密碼

//n:成員個數

void

joseph_1(

intm, 

intpos, 

inta[

2], 

intn)

//根據m值,求出將要離隊的成員在數姐中的位置

//考因為是迴圈數數,故用求模法

intout

=(pos +m 

-1)%

n;//

根據離隊成員的密碼,決定下一次偏移量m =

a[out][1

];//

離隊的成員編號

intnum =a[

out][0];

//離隊處理

cout 

<<"成員

"<<

num<<

"號離隊

"<<

endl;

//離開後,該成員後面的所有成員向前移動一位

for(

inti

=out

; i1; i++)

//對下一次進行處理

joseph(m, 

out,a, n-1

);}////

//迭代法求解joseph問題///

void

joseph_2(

intm, 

intpos, 

inta[

2], 

intn)

//下一次計數的起始位置

pos 

=out;//

人數減1n--

;}cout 

<<

"最後一位離隊的成員是

"<][0

]<<"號

"<<

endl;

return;}

//提供測試資料

inta[7][

2] =,,,,,,};

2、二分查詢法,我一直覺得二分查詢法,是一種非常優美的方法,寫起來非常漂亮:

////

二分查詢法

////

a:乙個已經從小到大排好序的陣列

//n:元素個數

//key:欲查詢的關鍵碼

//如果找到,返回關鍵碼所在的下標,否則返回n

intbinarysearch(

inta, 

intn, 

intkey)

//沒有找到

returnn;}

廣東北電 研發

廣東北電 青山不改 綠水長流 eking 裝載請註明,不要侵犯版權。待遇 碩士7k,本科5.5k,很不錯。一年13個月工資 1 筆試c 考的比較難,一共4題,1個小時完成 1.英譯漢 做完花了15分鐘,英語菜就乙個字!2.中序遍歷乙個二叉樹,不能用遞迴 地球上的人都知道要壓棧,但平時根本就是在用遞迴...

2007廣東北電筆試題目

廣東北電筆試題目 1.兩篇翻譯,中譯英,英譯中。10分 2.程式設計題。40分 有乙個整型陣列,要求從中找出乙個和最大的連續子集,輸出最大的和。如陣列 2,11,4,13,5,2 maxsum 20 11 4 13 20 陣列 7,8,16,2,4,2,15,14,3,7,1,2 maxsum 19...

程式設計師的工作站

今天在macbook pro上面裝了windows7。蠻容易的過程。這讓我想討論一下程式設計師的工具。此外,為了保證最大程度的專注,程式設計師應該在自己的工作環境安裝盡量少的軟體 類似於qq msn 人人桌面 迅雷 暴風影音等等,能不裝就不裝 要裝的話,在有需要的時候才去裝。這些軟體固然可以提供常用...