本帖最後由 方浩葦 於 2024-9-7 14:14 編輯
給定一整數陣列 b[0]、b[1]、…、b[49],其中 b[k] = 2k + 5,即每個元素是 k 的兩倍加 5。
以 value = 37 呼叫以下兩個函式,假設函式 g1 及 g2 的 while 迴圈主體分別執行 m1 與 m2 次,請問 m1 與 m2 之值為何?- int g1(int b[], int value) {
- int r_value = -1;
- int i = 0;
- while (i < 50) {
- if (b[i] == value) {
- r_value = i; break;
- }
- i = i + 1;
- }
- return r_value;
- }
- int g2(int b[], int value) {
- int r_value = -1;
- int low = 0, high = 49;
- int mid;
- while (low <= high) {
- mid = (low + high) / 2;
- if (b[mid] == value) {
- r_value = mid; break;
- } else if (b[mid] < value) {
- low = mid + 1;
- } else {
- high = mid - 1;
- }
- }
- return r_value;
- }
複製代碼 選項:
(A) m1 = 16, m2 = 5
(B) m1 = 16, m2 = 6
(C) m1 = 17, m2 = 5
(D) m1 = 17, m2 = 6
本帖隱藏的內容需要積分高於 1 才可瀏覽 |