- 441 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 03:05:55 ]
- >>437
#include <stdio.h> #include <stdlib.h> int main() { int n, *data, key, begin, end, mid, i; while(1){ scanf("%d", &n); if(n <= 0) break; data = (int *)malloc(sizeof(int) * n); for(i = 0; i < n; i++) scanf("%d", &(data[i])); scanf("%d", &key); begin = 0; end = n - 1; for(i = 0; begin <= end; i++){ mid = (begin + end) / 2; if(data[mid] == key){ i++; break; } if(data[mid] < key) begin = mid + 1; else end = mid - 1; } printf("%d\n", i); free(data); } return 0; }
|

|