2016上海某公司面试题(四)

来源:互联网 发布:搜题软件 编辑:程序博客网 时间:2024/04/30 10:02

今天某金融公司邀请我参加编程基础测试在线笔试,题目前两个蛮简单的:


1.判断题(2分): java数组有length方法吗?(B) 数组中的是属性!!!

A、对
B、错误


2.判断题(2分): java的String类有length方法吗?(A)字符串中是方法!!!

A、对
B、错误


3.编程题(30分):有一种数字口算游戏,N个人站成一排,编号为1到N,游戏规则:编号1-3的前3个人数字是确定的: 第一个人报2,第二个人报3,第三个人报5。从第4个人开始报数,编号为index的人说的数字为编号index-1和编号index-3的人的数字之和,减去编号为index-2的人的数字的2倍。


举个例子: 第四个人报1 (2+5-2*3=1),第五个人报 -6 (1+3-2*5= -6)。
请问第70个人报___,第99个人报___。
请编程实现,填空并且附上源代码或者伪代码!


public class Test1 {    public int getNumber(int n) {        //这里写上您的代码    }}

答:


70->560711502
99->1577520226

设第n个报f(n) 其中n>3,这有f(n)=f(n-1)+f(n-3)+2*f(n-2)


public Map<Integer,Integer> cache = new HashMap<Integer,Integer>();public class Test1 {    public int getNumber(int n) {        //这里写上您的代码        if(n == 1){return 2;}        if(n == 2){return 3;}        if(n == 3){return 5;}        Integer res = cache.get(n);        if(res != null){return res;}        res = f(n-1)+f(n-3)-(2*f(n-2));        cache.put(n, res);        return res;    }}

4. 编程题(30分):如果一个字符串里面字母之间ASCII码值形成等差数列(等差大于等于1),那么我们称之为优美字符串,比如长度为3的优美字符串有abc, ace, bcd,xyz等, 长度为4的优美字符串有abcd, cdef, aceg等。现在给定a-z 26个小写字母集合,
请问长度为3的优美字符串总共有___个,长度为10的优美字符串总共有___个。
请编程实现,填空并且附上源代码或者伪代码!




5. 编程题(30分):(注意,本题运行时间不能超过1秒,请把循环次数控制在1千万次之内)魔术数是指一个自然数既是完全平方数(能表示成一个整数的平方),也能被5整除,比如25和400都是魔术数:25=5*5, 25%5=0;请问[1, 10^12] (1到1万亿之间,包含1和1万亿)之间所有的魔术数有___个。并把这些数字作为答案附在程序后面一起发回给我们。
请编程实现,填空并且附上源代码或者伪代码!


有100个(算上0的话101)
设要平方的数为x,要立方的数为y,其中x<1000000,y<10000,x=y的二分之三次方;x为整数


public static void main(String[] args) {        int maxY = 10001;        int maxX = 1000001;        int count = 0;        long start = System.currentTimeMillis();        for (int i = 1; i < maxY; i++) {            double x = Math.pow(i, 1.5);            if(x%1 == 0 && x < maxX){//x为整数                count++;            }        }        long end = System.currentTimeMillis();        System.out.println("有:"+count+"个 耗时:"+(end-start)+" ms ");    }


输出结果:有:100个 耗时:0 ms (这个视机器情况)


0 0
原创粉丝点击