標題:
10503_3_
[打印本頁]
作者:
may
時間:
2023-5-12 15:33
標題:
10503_3_
給定一整數陣列 a[0]、a[1]、…、a[99]且 a[k]=3k+1,
以 value=100 呼叫以下兩函式,
假設函式 f1 及 f2 之 while 迴圈主體分別執行 n1 與 n2 次
(i.e, 計算 if 敘述執行次數,不包含 else if 敘述),
請問 n1 與 n2 之值為何?
註: (low + high)/2 只取整數部分
int f1(int a[], int value)
{
int r_value = -1;
int i = 0;
while (i < 100)
{
if (a[i] == value)
{
r_value = i; break;
}
i = i + 1;
}
return r_value;
}
複製代碼
int f2(int a[], int value)
{
int r_value = -1;
int low = 0, high = 99; int mid;
while (low <= high)
{
mid = (low + high)/2;
if (a[mid] == value)
{
r_value = mid; break;
}
else if (a[mid] < value)
{
low = mid + 1;
}
else
{
high = mid - 1;
}
}
return r_value;
}
複製代碼
(A) n1=33, n2=4
(B) n1=33, n2=5
(C) n1=34, n2=4
(D) n1=34, n2=5
作者:
may
時間:
2023-5-12 15:36
回復
1#
may
答案是(D) n1=34, n2=5
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2