二分法判断 |
Time Limit: 1 Seconds Memory Limit: 32768 K Total Submit:305 Accepted:227 |
Description 给定一组由小到大的整数{1, 3, 4, 5, 6, 7, 10, 13, 22, 23, 30, 32, 33, 34, 36} ,再任给一整数x0,用二分法判断x0是否在该数组之中,如果在输出true,否则输出false Input x0 Output 如果x0在数组中,输出true,否则输出false (并换行回车) Sample Input 9
Sample Output false |
Source: #include<iostream.h> int count(int a[],int low,int high,int n) { if(low>high) return 0; else { int mid=(low+high)/2; if(a[mid]>n) return count(a,low,mid-1,n); else if(a[mid]<n) return count(a,mid+1,high,n); else return 1; } } int main() { int a[16]={1, 3, 4, 5, 6, 7, 10, 13, 22, 23, 30, 32, 33, 34, 36},x0; cin>>x0; if(count(a,0,15,x0)) cout<<"true"<<endl; else cout<<"false"<<endl; return 0; }
|