1 solutions

  • 0
    @ 2024-12-11 0:09:07

    C :

    #include<stdio.h>
    int a[100010];
    int fac(int p,int q,int x)
    {   int z;z=0;
    
    	z=p+(q-p)/2;
    
     if(p>q)
      {printf("-1");return 0;
    	 }
    	if(x==a[z])
         {printf("%d",z);return 1;
    	 }
       	else
    	{
    	
    		if(x>a[z]) fac(z+1,q,x);
    	
    	
    		else  fac(p,z-1,x);
    		
    		
    		
    		
    	}
    	
    	
    	
    	
    	
    	
    }
    int main()
    {
    	int n,x,i;
    	scanf("%d",&n);
    	for(i=1;i<=n;i++)
    	{ 
    		scanf("%d",&a[i]);
    
    		
    	}
    	
    		scanf("%d",&x);
    	
    fac(1,n,x);
    	
    }
    

    C++ :

    #include<iostream>
    using namespace std;
    const int max1=1000000;
    int a[max1],n,m;
    int  flag;
    int search(int ,int, int );
    int main()
    {  
    	cin>>n;
    	for (int i=1; i<=n; ++i) cin>>a[i];
    	cin>>m;
    	flag=search(1,n,m);
    	//if (flag) cout<<"YES"<<endl;
    	//	else  cout<<"NO"<<endl;
    	cout<<flag<<endl;
    	return 0;
    }
    int  search(int l,int r,int m)
    {
    	int mid=(l+r)/2;
    	if (l>r) return -1;
    		else if (a[mid]==m) return mid;	
    			else if (a[mid]>m) 
    				return search(l,mid-1,m);
    			else return search(mid+1,r,m);
    }
    
    

    Pascal :

    program binary_find;
    type arr=array[1..100005] of longint;
    function bf_dg(l,r,x:longint;a:arr):longint;
    var m:longint;
    begin
      if l>r then exit(-1);
      m:=(l+r) div 2;
      if x=a[m] then exit(m);
      if x<a[m] then exit(bf_dg(l,m-1,x,a))
      else
        exit(bf_dg(m+1,r,x,a));
    end;
    function bf(n,x:longint;a:arr):longint;
    var l,r,m:longint;
    begin
      l:=1; r:=n;
      while l<=r do
      begin
        m:=(l+r) div 2;
        if x=a[m] then exit(m);
        if x<a[m] then r:=m-1
        else l:=m+1;
      end;
      exit(-1);
    end;
    
    var
      a:arr;
      n,x,i:longint;
    begin
      readln(n);
      for i:=1 to n do read(a[i]);
      readln(x);
      writeln(bf(n,x,a));
      readln;
    end.
    
    
    • 1

    Information

    ID
    668
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    10
    Tags
    # Submissions
    9
    Accepted
    2
    Uploaded By