------- android培训、java培训、期待与您交流! ----------
这三题是有人发在论坛分享出来的说是百度笔试题!
package cn.baidu;
/**
* 1:公司里面有1001个员工,现在要在公司里面找到最好的羽毛球选手,也就是第一名,
* 每个人都必须参赛,问至少要比赛多少次才能够找到最好的羽毛球员工
* @author Jeffery
*
*/
public class Test11 {
public static void main(String[] args) {
int i = 0;
while((2<<i)<1001) {
i++;
}
System.out.println(i);
}
}
这一题,先前写的比较复杂,考虑了很多,最终觉得这样写简洁明了,说实话这题没怎么看懂!这个比赛次数,和比赛场数,搞不清楚区别!
/**
* 2:现在有100个灯泡,每个灯泡都是关着的,第一趟把所有的灯泡灯泡打开,
* 第二趟把偶数位的灯泡制反(也就是开了的关掉,关了的打开),
* 第三趟让第3,6,9....的灯泡制反.......第100趟让第100个灯泡制反,问经过一百趟以后有多少灯泡亮着----
* @author Jeffery
*
*/
public class Test12 {
/*
* 1 灯开
* -1 灯关
*/
public static void main(String[] args) {
int[] arr = new int[101];
int temp = 1;
int count = 0;
for(int i = 1;i<=100; i++) {
int j = i;
while(j <= 100) {
arr[j] = temp;
j = j + i;
}
temp = temp * -1;
}
for(int i = 1; i<=100;i++) {
if(arr[i] == 1)
count ++;
}
System.out.println(count);
}
}
这一题挺多了,多数题大同小异!
package cn.baidu;
/**
* 3:有20个数组,每个数组有500个元素,并且是有序排列好的,现在在这20*500个数中找出排名前500的数
* @author Jeffery
*
*/
public class Test13 {
public static void main(String[] args) {
int[][] arr = new int[20][500];
int t = 0;
int sum = 0;
for(int i = 0;i<arr.length;i++) {
for(int j = 0;j<arr[i].length;j++) {
sum = sum + 2;
arr[i][j] = arr[i][j] +sum;
}
}
while(t++<5)
System.out.println(max(arr));
}
private static int max(int[][] arr) {
int max = 0;
int t1 = 0,t2 = 0;
for(int i = 0;i<arr.length;i++) {
for(int j = 0;j<arr[i].length;j++) {
if(max < arr[i][j]) {
max = arr[i][j];
t1 = i;
t2 = j;
}
}
}
arr[t1][t2] = 0;
return max;
}
}
循环500次,每次返回一个最大值,并把最大值赋值为零,然后再找余下值的最大值,
------- android培训、 java培训、期待与您交流! ----------