牛客网编程练习之腾讯2017校招题:游戏任务标记
思路:
这道题主要考的是位运算。
依照题意,使用32个int类型来标记就可以了,只不过使用Java语言的话可能需要多一步计算这个任务ID应该落在哪个数组下标的步骤。
AC代码:
import java.util.Scanner; /** * @author CC11001100 */ public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt() -1 ; int m = sc.nextInt() -1; if(n<0 || n>1023 || m<0 || m>1023){ System.out.println(-1); } int[] task = new int[32]; task[n/32] |= (1<<(n%32)); int ans = ((task[m/32] >> (m%32)) & 0X1) == 1 ? 1 : 0; System.out.println(ans); } }
.