滴滴 编程题 xor以及 235 丑数 ac答案
//第一题xor ,往前找,不知道对不对,反正ac了,ac了也不一定能面试^_^ import java.util.Scanner; public class xor { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int num = sc.nextInt(); int[] arr = new int[num]; for (int i = 0; i < num; i++) { arr[i] = sc.nextInt(); } int count = 0; int[] flag = new int[num]; for (int i = 0; i < num; i++) { if (arr[i] == 0) { flag[i] = -1; count++; } else { int temp = arr[i]; for (int j = i-1; j>=0; j--) { if (flag[j] == -1) { break; } if ((temp ^ arr[j]) == 0) { flag[i] = -1; count++; break; } else { temp = temp ^ arr[j]; } } } } System.out.println(count); } } } //第二题 2 3 5 因子题 打表 测试用例只有10000以内的数 import java.util.Scanner; import java.util.Set; import java.util.TreeSet; public final class ugly { public static void main(String[] args) { Scanner sc =new Scanner(System.in); Set <Long> s =new TreeSet<Long>(); int max =10000; while(sc.hasNext()) { int num =sc.nextInt(); for(int i =1;i<max;i*=2) { for(int j=1;i*j<max;j*=3) { for(int k=1;k*i*j<max;k*=5) { s.add((long)i*j*k); } } } s.add((long)1); int count =1; for(Long l:s) { if(count ==num) { System.out.println(l); break; } count++; } } } }
#滴滴##Java工程师#