web后端工程师:
经验总结:
出来实习学校的基础都没看过了。。。复习只是看了看Java 和JavaWeb和数据库的东西,校招笔试都是基础呀,数据结构,操作系统,网络七层模型,算法比较多!
选择题:
675 225 90 45 30 30 根据规律推测下一个数为()
A,28 B,0 C,15 D,30
解析:第一个数为第二个数的3倍,第二个数为第三个数的2.5倍,第三个数是第四个数的2倍...倍数0.5递减,所以最后一个数为C,15(当时激动竟然没看出来。。。)
Cookie:
解析:使用Cookie对象必须设置其生存期限,否则Cookie将会随着浏览器的关闭而自动消失。
第一道编程题:一个整数如果其因子全部由3和7组成就叫做37数,
比如3和7,21都是37数,6就不是因为其因子含有2。
请你设计一个函数判断一个整数是否属于37数,不限语言。
import java.util.Scanner;
public class Test {
public static void main(String []args) {
System.out.println("请输入一个整数");
Scanner sc = new Scanner(System.in);
int num=sc.nextInt();
if(is37Number(num)){
System.out.println("此数字是37数");
}else{
System.out.println("此数字不是37数");
}
}
public static boolean is37Number(int num){
if(num<=1){
return false; //认为含有0,-1 ,不属于37数
}
while((num!=1)&&(num!=3)&&(num!=7)){
if(num%21==0){
num=num/21;
}else if(num%3==0){
um=num/3;
}else if(num%7==0){
num=num/7;
}else{
return false;
}
}
return true;
}
}
第二道编程题:如果你是一个强盗,正准备抢劫一条街道,这条街道上装有互联监视系统,
也就是如果连续抢劫两家相邻的商店就会引发报警。你如何从这条街道盗取最大收益。
给定一列整数表示 每家商店的价值,在不能取相邻两数的情况下如何从这列整数中得到和的最大值。
//下面是以递归的方式解决,如果整数列比较长的话系统开销会比较大:
public class Test {
public static void main(String []args) {
List
//一列整数 模拟商店价值(假定三家商店,数少好理解)
street.add(10);
street.add(90);
street.add(100);
int result =maxValue(street);
System.out.println("从这条街道能获得的最大价值为"+result+"美元");//输出结果(结果为110美元)
}
public static int maxValue(List
if(list.size()==1){
return list.get(0);
}else if(list.size==2){
if(list.get(0)>list.get(1)){
return list.get(0);
}else{
return list.get(1);
}
}if(list.size()>2){
int n=list.remove(list.size()-1); //最后一家商店的价值 (第一次执行为100)
List
int r1=maxValue(list2); //r1是让舍弃最后一家商店不抢,所能盗取的最大值(第一次执行为90)
list.remove(list.size()-1);
List
//list3第一次执行为[ 10 ],因为执行力两次remove()方法
int r2=n+maxValue(list3); //r2是选择抢最后一家商店,所能盗取的最大值(第一次执行为110)
if(r1>r2){ //比较之后决定抢不抢最后一家,就能利用递归倒推出抢那些商店能获得最大价值
return r1;
}else{
return r2;
}
}
}
}
//尝试对第二题进行优化: