每行有两个不大于65535的非负整数
对于每一行的两个整数,输出一行,内容为YES或NO
2 4 9 18 45057 49158 7 12
YES YES YES NO
import java.util.*; public class Main { public static void main(String[] args) { Scanner reader = new Scanner(System.in); int a = reader.nextInt(); int b = reader.nextInt(); String binary_a = convert(a); String binary_b = convert(b); for (int j = 0; j < binary_b.length(); ++j) { int last = j; int i = 0; while (binary_a.charAt(i) == binary_b.charAt(last)) { i = (i+1)%binary_a.length(); last = (last+1)%binary_b.length(); if (last == j) { System.out.println("YES"); return; } } } System.out.println("NO"); } public static String convert(int a) { StringBuilder sb = new StringBuilder(); while (a > 0) { sb.insert(0, String.valueOf(a%2)); a /= 2; } int len = sb.length(); for (int i = 0; i < 16-len; ++i) sb.insert(0, "0"); return sb.toString(); } }