C语言练习题
二分搜尋法(尾牙抽獎)
問題簡述:
東亞創新公司即將舉辦尾牙,尾牙抽獎是員工最期待的活動。公司提供 個不同金額的紅包,每個紅包上都有一
個獨特的號碼,號碼與紅包內金額並無關聯,且員工事先並不知道這些紅包的號碼。為了方便搜尋,公司先將所有紅包依號碼由小到大排序好。
抽獎時,每位員工猜想一個號碼,接下來以二元搜尋法試著找出該號碼的紅包。不管是否能找得到該紅包,都可得到二元搜尋法過程中所檢驗過的紅包。
限制條件:當紅包數為 時,中間位置計算方式為 。 例如,n=10,中間位置為第5個。
需要完成及繳交的函式:
int binarySearch (int target, int n, int reward[])函式
- target :擬找尋的紅包號碼。
- n :紅包數量。
- reward [ ] : reward[i] 為第i個紅包的號碼。
- 程序:二元搜尋過程,輸出每個被檢驗的紅包號碼,直到找到所設定的紅包號碼,或確定沒有該紅包號碼時結束。
> int binarySearch (int target, int n, int reward[]){
> //請完成並繳交本函式 }
程式樣板:
> #include <stdio.h>
> #include <stdlib.h>
>
> int binarySearch( int target, int n, int reward[] );
>
> int main(void) {
> int A[1000];
> int i,n,target;
>
> scanf( "%d", &n );
> for( i = 0; i < n; i++ )
> scanf( "%d", &A[i] );
>
> scanf("%d",&target);
>
> binarySearch( target, n, A );
>
> return 0; }
>
> int binarySearch( int target, int n, int reward[] ) { // 你的程式碼 }
具体题目及解答方法请下载下方链接:
C语言练习题-二分搜索.c
https://download.csdn.net/download/weixin_40441194/12631665
C语言练习题-二分搜寻法.pdf
https://download.csdn.net/download/weixin_40441194/12631647