1 条题解

  • 0
    @ 2025-4-12 21:41:02

    C :

    #include<stdio.h>
    int main()
    {
        int n,a[10],i,b,low,high,mid;
        for(i=0;i<10;i++)
            scanf("%d",&a[i]);
        while(~scanf("%d",&n))
            {
                while(n--)
                {
                    scanf("%d",&b);
                    low=1;high=9;
                    if(b==a[0])
                        printf("1\n");
                    else
                    {
                        while(low<=high)
                        {
                            mid=(low+high)/2;
                            if(a[mid]==b)
                            {printf("%d\n",mid+1);break;}
                            else if(a[mid]>b)
                                high=mid-1;
                            else low=mid+1;
                        }
                    }
                    if(low>high)
                        printf("error\n");
                 }
            }
            return 0;
    }
    
    

    C++ :

    #include<iostream>
    
    using namespace std;
    
    int a[15];
    int flag;
    
    int zb(int n){
        int left,right,mid;
        left = 1;
        right = 10;
        //mid = (left + right) / 2;
        while(left <= right){
            int mid = (left + right) / 2;
            if(a[mid]<n){
                left = mid + 1;
            }
            else if(a[mid]>n){
                right = mid - 1;
            }
            else
                return mid;
            //cout<<left<<' '<<right<<' '<<mid<<endl;
        }
        flag = 0;
        //cout<<flag<<endl;
        return -1;
    }
    
    int main(){
        for(int i=1;i<11;i++)
            cin>>a[i];
        int n;
        cin>>n;
        while(n--){
            flag = 1;
            int m;
            cin>>m;
            //cout<<flag<<endl;
            int x = zb(m);
            if(!flag)
                cout<<"error"<<endl;
            else
                cout<<x<<endl;
        }
        return 0;
    }
    
    

    Java :

    
    
    import java.util.Scanner;
    
    public class Main {
    
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int[] a = new int[10];
    		for(int i=0;i<10;i++) {
    			a[i] = sc.nextInt();
    		}
    		
    		int n = sc.nextInt();
    		int b;
    		for(int i=0;i<n;i++) {
    			b = 0;
    			int c=0;
    			b = sc.nextInt();
    			for(int j=0;j<10;j++) {
    				if(b == a[j]) {
    					c++;
    					System.out.println(j+1);
    					break;
    				}
    			}
    			if(c==0) {
    				System.out.println("error");
    			}
    		}
    		
    		
    		
    	}
    
    }
    
    
    • 1

    信息

    ID
    1079
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者