阿摩線上測驗 登入

申論題資訊

試卷:110年 - 110 國立臺南女中第一次教師甄選資訊科技概論科#98018
科目:教甄◆資訊科技概論專業(電腦科)
年份:110年
排序:6

申論題內容

7. 請寫出以下 C 語言程式碼執行結果? _____607e28f78ef83.jpg

詳解 (共 1 筆)

詳解 提供者:Ted Lee

誰能看懂到底是 1 还是l (L)?

#include <iostream>


using namespace std;


int arr[] = {2, 1, 6, 3, 5, 4, 8, 7, 9}, B[9], len;


int T(int w) {

int m, l=0, r=len-1;

while (l <= r) {

m = (l+r)/2;

if (B[m] > w) r = m-l;

else if (B[m] < w) l = m+1;

else return m; 

}

return (B[m]>w) ? m : m+1;

}


int S(int n) {

len = 1;

B[0] = arr[0];

int i, pos = 0;

for (i=1; i<n; ++i) {

if (arr[i] > B[len-1]) {

B[len] = arr[i];

++len;

}

else {

pos = T(arr[i]);

B[pos] = arr[i];

}

}

return len;

}


int main() {

printf("%d\n", S(9));

return 0;

}