#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<cstring>usingnamespace std;int x, n, mid, high, low =1;intmain(){scanf("%d %d",&x,&n);
high = n;while(low < high){
mid =(high+low)/2;if(mid < x)
low = mid+1;else
high = mid;}printf("%d right", x);return0;}
#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<cstring>usingnamespace std;int x, n, mid, high, low =1;intmain(){scanf("%d %d",&x,&n);
high = n;while(low < high){
mid =(high+low+1)/2;if(mid > x)
high = mid-1;else
low = mid;}printf("%d right", x);return0;}
二、进阶
1. 查找第一个大于
x
x
x 的数
#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<cstring>usingnamespace std;int l =1, r, mid, n, s;int a[20005];voidbs(){while(l<r){
mid=(l+r)/2;if(a[mid]> s)
r = mid;else l = mid+1;}}intmain(){scanf("%d",&n);
r = n+1;for(int i =1; i <= n; i++){scanf("%d",&a[i]);}scanf("%d",&s);sort(a+1, a+1+n);bs();(l > r)?printf("No\n"):printf("%d", a[l]);return0;}
2. 查找第一个大于等于
x
x
x 的数
#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<cstring>usingnamespace std;int l =1, r, mid, n, s;int a[20005];voidbs(){while(l<r){
mid=(l+r)/2;if(a[mid]>= s)
r = mid;else l = mid+1;}}intmain(){scanf("%d",&n);
r = n+1;for(int i =1; i <= n; i++){scanf("%d",&a[i]);}scanf("%d",&s);sort(a+1, a+1+n);bs();(l > r)?printf("No\n"):printf("%d", a[l]);return0;}
3. 查找第一个小于
x
x
x 的数
// 第一个小于 #include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<cstring>usingnamespace std;int l =1, r, mid, n, s;int a[20005];voidbs(){while(l<r){
mid=(l+r+1)/2;if(a[mid]>= s)
r = mid-1;else l = mid;}}intmain(){scanf("%d",&n);
r = n+1;for(int i =1; i <= n; i++){scanf("%d",&a[i]);}scanf("%d",&s);sort(a+1, a+1+n);bs();(l <1)?printf("No\n"):printf("%d", a[l]);return0;}
4. 查找第一个小于等于
x
x
x 的数
#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<cstring>usingnamespace std;int l =1, r, mid, n, s;int a[20005];voidbs(){while(l<r){
mid=(l+r+1)/2;if(a[mid]<= s)
r = mid-1;else l = mid;}}intmain(){scanf("%d",&n);
r = n+1;for(int i =1; i <= n; i++){scanf("%d",&a[i]);}scanf("%d",&s);sort(a+1, a+1+n);bs();(l <1)?printf("No\n"):printf("%d", a[l]);return0;}