C语言练习题
二分搜尋法(尾牙抽獎)
問題簡述:
東亞創新公司即將舉辦尾牙,尾牙抽獎是員工最期待的活動。公司提供 個不同金額的紅包,每個紅包上都有一
個獨特的號碼,號碼與紅包內金額並無關聯,且員工事先並不知道這些紅包的號碼。為了方便搜尋,公司先將所有紅包依號碼由小到大排序好。
抽獎時,每位員工猜想一個號碼,接下來以二元搜尋法試著找出該號碼的紅包。不管是否能找得到該紅包,都可得到二元搜尋法過程中所檢驗過的紅包。
限制條件:當紅包數為 時,中間位置計算方式為 。 例如,n=10,中間位置為第5個。
需要完成及繳交的函式:
int binarySearch (int target, int n, int reward[])函式
- target :擬找尋的紅包號碼。
- n :紅包數量。
- reward [ ] : reward[i] 為第i個紅包的號碼。
- 程序:二元搜尋過程,輸出每個被檢驗的紅包號碼,直到找到所設定的紅包號碼,或確定沒有該紅包號碼時結束。
> int binarySearch (int target, int n