#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
void binary(int a[], int n, int x)
{
int l=0, r=n;//左闭右开区间
while(l<=r)
{
int mid=(l+r)/2;
if(a[mid] < x) l=mid+1;//找到第一个大于等于的元素,如果要找大于就加个等于号
else r=mid-1;//return l;
// if(a[mid] > x) r=mid-1;//找到第一个小于等于的元素,如果要找小于就加个等于号
// else l=mid+1; //return r;
}
int ans=a[l];
// int ans=a[r];
cout<<ans<<endl;
}
int main()
{
srand(time(0));
int a[]={1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31};
int n=sizeof(a)/sizeof(int);
int t=rand()%50;
while(t--)
{
int x=rand()%33;
cout<<"x="<<x<<endl;
binary(a, n, x);
}
}