public class 测试次数 { public static void main(String[] args) { final int N = 1000; //测试层数n int[] f1 = new int[N + 1]; int[] f2 = new int[N + 1]; int[] f3 = new int[N + 1]; //测试层数为N时候测试1,2,3部手机需要的次数 //测试中1部实验手机 for (int i = 1; i <= N; i++) { f1[i] = i; } //测试中2部实验手机 for (int i = 1; i < N; i++) { int ans = Integer.MAX_VALUE; //尝试1~i若干种方案,并记录方案中次数最小的 for (int j = 1; j <=i; j++) { int _max = 1 + Math.max(f2[i - j], f1[j - 1]); ans = Math.min(ans, _max); } f2[i] = ans; } //测试中3部实验手机 for (int i = 1; i <= N; i++) { int ans = Integer.MAX_VALUE; //尝试1~i若干种方案,并记录方案中次数最小的 for (int j = 1; j <=i; j++) { int _max = 1 + Math.max(f3[i - j], f2[j - 1]); ans = Math.min(ans, _max); } f3[i] = ans; } System.out.println(f3[N]); } }
第九届蓝桥杯JavaB组-手机测试次数
最新推荐文章于 2022-03-07 19:26:32 发布