1 条题解

  • 0
    @ 2024-12-24 9:59:26

    C :

    #include <stdio.h>
    int youyi(int x)
    {
            int y;
            y=x/2;
            if(x%2==1)
                    y+=32768;
            return y;
    }
    void run(int a,int b)
    {
            int i;
            for(i=1;i<=16;i++) 
            {
                    if(a==b)
                    {
                            printf("YES\n");
                            return;
                    }
                    a=youyi(a);
            }
            printf("NO\n");
    }
    int main()
    {
            int n,a,b;
            scanf("%d",&n);
            while(n>0)
            {
                    n--;
                    scanf("%d%d",&a,&b);
                    run(a,b);
            }
            return 0;
    }
    

    C++ :

    #include <stdio.h>
    int youyi(int x)//返回x右移一位之后的值 
    {
    	int y;
    	y=x/2;
    	if(x%2==1)
    		y+=32768;
    	return y;
    }
    void run(int a,int b)
    {
    	int i;
    	for(i=1;i<=16;i++)//如果16次右移仍不能使得a和b相等,则返回no 
    	{
    		if(a==b)//若干次对a右移处理后a和b相等 
    		{
    			printf("YES\n");
    			return;
    		}
    		a=youyi(a);
    	}
    	printf("NO\n");
    }
    int main()
    {
    	int n,a,b;
    	scanf("%d",&n);
    	while(n>0)
    	{
    		n--;
    		scanf("%d%d",&a,&b);
    		run(a,b);
    	}
    	return 0;
    }
    

    Java :

    import java.util.Scanner;
    
    
    public class Main {
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            int N = in.nextInt();
            while (N-- > 0) {
                int first = in.nextInt();
                int second = in.nextInt();
    
                boolean flag=false;
                int tmp = first;
                while (tmp>0) {
                    if(tmp==second){flag=true;break;}
                    tmp>>=1;
                }
    
                while (first>0) {
                    if(first==second){flag=true;break;}
                    first<<=1;
                }
    
                if(flag)
                    System.out.println("YES");
                else
                    System.out.println("NO");
            }
        }
    }
    
    
    • 1

    信息

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