论坛首页 招聘求职论坛

一道简单的Java面试题

浏览 103230 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (3)
作者 正文
   发表时间:2011-04-10  
rickysun 写道
backshadow 写道
ArrayList<Integer> al = new ArrayList<Integer>(30);
		for (int i = 2; i <= 100; i++) {
			boolean ok = true;
			for (int t : al) { //用已有质数集作判断,减少比较次数
				if (i % t == 0) {
					ok = false;
					break;
				}
				if (t > i / 2) {
					break;
				}
			}
			if (ok) {
				al.add(i);
			}
		}

楼主啊,这是我的解法,
我曾经在面试现场解得斐波那契的3变量法和杨辉三角的一维数组法,在打游戏时候想得怪物动作的控制方法,就在昨晚还做梦想出魔兽或三国杀的成就系统解决办法,我出价不高啊,不用8k,6k就成!

哥,你是在北京吗?我就喜欢你这样的,喜欢钻研算法和技术的人。如果是只要6K,直接来我这报道吧。


主要搞什么东西? 主要用算法?--游戏?图形?
0 请登录后投票
   发表时间:2011-04-10  
rickysun 写道
刚才用50000测了一下这两种算法,一个是297毫秒,一个耗时7875毫秒。
快速算法:
        ArrayList<Integer> al = new ArrayList<Integer>(); 
        al.add(2);
	System.out.println(2);
            for (int i = 2; i <= 50000; i++) {  
                boolean ok = true;  
                for (int t : al) { //用已有质数集作判断,减少比较次数  
                    if (i % t == 0) {  
                        ok = false;  
                        break;  
                    }  
                    if (t > i / 2) {  
                        break;  
                    }  
                }  
                if (ok) {  
                    System.out.println(i);
                    al.add(i);
                }  
            }  


普通算法:
for(int i=2;i<=50000;i++) {
	boolean ok = true;
	for (int j = 2; j < i; j++) {
		if(i%j==0) {
			ok = false;
		}
	}
	if(ok) System.out.println(i);
	}

普通算法没加break;如果加break,也在1秒,800多毫秒。
for(int i=2;i<=50000;i++) {
				boolean ok = true;
				for (int j = 2; j < i; j++) {
					if(i%j==0) {
						ok = false;
						break;
					}
				}
				if(ok) System.out.println(i);
			}


0 请登录后投票
   发表时间:2011-04-10   最后修改:2011-04-10
冰寒Alicv 写道
rickysun 写道
backshadow 写道
ArrayList<Integer> al = new ArrayList<Integer>(30);
		for (int i = 2; i <= 100; i++) {
			boolean ok = true;
			for (int t : al) { //用已有质数集作判断,减少比较次数
				if (i % t == 0) {
					ok = false;
					break;
				}
				if (t > i / 2) {
					break;
				}
			}
			if (ok) {
				al.add(i);
			}
		}

楼主啊,这是我的解法,
我曾经在面试现场解得斐波那契的3变量法和杨辉三角的一维数组法,在打游戏时候想得怪物动作的控制方法,就在昨晚还做梦想出魔兽或三国杀的成就系统解决办法,我出价不高啊,不用8k,6k就成!

哥,你是在北京吗?我就喜欢你这样的,喜欢钻研算法和技术的人。如果是只要6K,直接来我这报道吧。


主要搞什么东西? 主要用算法?--游戏?图形?


没那么高深,就是搞电子商务网站。。。。。。。。开发一整套前后台程序。当然不是简单的写写网页,内容还挺多,有支付,物流,订单管理,还有大并发量,大数据量,集群,分布式之类的技术。
0 请登录后投票
   发表时间:2011-04-10  
rickysun 写道
Chen.H 写道
rickysun 写道
求100以内的质数(指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。)
大家觉得这是个很难的题目吗?
最近面试了很多人,职位是:Java开发工程师。
有人说“这个是算法题,我是搞J2EE开发的,不需要会这个题目”,此人薪资要求8K
有人说“可能专业不对口,我是搞SSH的,我Struts/Spring/Hibernate都懂。这个做不出来”,此人薪资要求8.5K。
最终有一个哥们,做了15分钟,终于给出答案了。当然是答案是错的,此人薪资要求12K。
他给的答案是:
for(int i=0;i<100;i++) {
   for(int j<0;j<100;j++) {
       if(i/j==0) {
          break;
       }
       System.out.println(i);
   }
}

:cry:   
我真的很无奈了。。。。。
我现在的想法是,30秒内给出答案的,直接8K以上。。。

楼主太扯淡了!
就凭一道题就来给薪资吗?
不要把此观点影响一大批人!好多都是新手,后果很严重!

楼上说的是,我也觉得新手还是脚踏实地,学好知识是关键,不要浮躁。呵呵。
可能也是因为小公司的缘故吧。也可能是我们搜集的这部分简历水分太大。

建议小公司养一个核心技术,然后其他的就是普通人员就可以,你可以看手法,基本2个星期就可以看出来了。
0 请登录后投票
   发表时间:2011-04-10  
package JustTest;

public class PrintSuNum {
	
	public static void main(String[] args) {
		for(int i=0;i<100;i++){
			if(isSu(i)){
				System.out.println(i);
			}
		}
	}
	
	private static boolean isSu(int num){
		if(num <=1){
			System.out.println(num+"因为小于等于1,所以不是素数");
			return false;
		}
		for(int i=2; i<num;i++){
			if(num%i==0){
				return false;
			}
		}
		return true;
	}

}

 

 这是我自己写的,其实不难,不过还是花了几分钟,刚开始想用一个for搞定,后来根据oop思想,写了一个方法用来判断是否是素数,然后在主方法中调用。

0 请登录后投票
   发表时间:2011-04-10   最后修改:2011-04-10
.....我来错论坛了吗...还8K???????????

看来我误解楼主意思了- -
楼主是来调高程序员市场价码的...
0 请登录后投票
   发表时间:2011-04-10  
别装了,出一个题考你你一样不会
0 请登录后投票
   发表时间:2011-04-10   最后修改:2011-04-10
Chen.H 写道
rickysun 写道
Chen.H 写道
rickysun 写道
求100以内的质数(指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。)
大家觉得这是个很难的题目吗?
最近面试了很多人,职位是:Java开发工程师。
有人说“这个是算法题,我是搞J2EE开发的,不需要会这个题目”,此人薪资要求8K
有人说“可能专业不对口,我是搞SSH的,我Struts/Spring/Hibernate都懂。这个做不出来”,此人薪资要求8.5K。
最终有一个哥们,做了15分钟,终于给出答案了。当然是答案是错的,此人薪资要求12K。
他给的答案是:
for(int i=0;i<100;i++) {
   for(int j<0;j<100;j++) {
       if(i/j==0) {
          break;
       }
       System.out.println(i);
   }
}

:cry:   
我真的很无奈了。。。。。
我现在的想法是,30秒内给出答案的,直接8K以上。。。

楼主太扯淡了!
就凭一道题就来给薪资吗?
不要把此观点影响一大批人!好多都是新手,后果很严重!

楼上说的是,我也觉得新手还是脚踏实地,学好知识是关键,不要浮躁。呵呵。
可能也是因为小公司的缘故吧。也可能是我们搜集的这部分简历水分太大。

建议小公司养一个核心技术,然后其他的就是普通人员就可以,你可以看手法,基本2个星期就可以看出来了。

楼主严重误导新人。就会这鸟题就给8k,你们老板脑子进水了,居然让你给出价。这道题会不会都说明不了什么问题。招人是一个综合的事情,哪有你这么瞎搞的。你这是意气用事。
0 请登录后投票
   发表时间:2011-04-10  
刚才在网上搜了一下素数的算法思想,我们的算法都是“低能”的算法。。。。。悲剧啊。都洗洗睡了吧
0 请登录后投票
   发表时间:2011-04-10  
rickysun 写道
冰寒Alicv 写道
rickysun 写道
backshadow 写道
ArrayList<Integer> al = new ArrayList<Integer>(30);
		for (int i = 2; i <= 100; i++) {
			boolean ok = true;
			for (int t : al) { //用已有质数集作判断,减少比较次数
				if (i % t == 0) {
					ok = false;
					break;
				}
				if (t > i / 2) {
					break;
				}
			}
			if (ok) {
				al.add(i);
			}
		}

楼主啊,这是我的解法,
我曾经在面试现场解得斐波那契的3变量法和杨辉三角的一维数组法,在打游戏时候想得怪物动作的控制方法,就在昨晚还做梦想出魔兽或三国杀的成就系统解决办法,我出价不高啊,不用8k,6k就成!

哥,你是在北京吗?我就喜欢你这样的,喜欢钻研算法和技术的人。如果是只要6K,直接来我这报道吧。


主要搞什么东西? 主要用算法?--游戏?图形?


没那么高深,就是搞电子商务网站。。。。。。。。开发一整套前后台程序。当然不是简单的写写网页,内容还挺多,有支付,物流,订单管理,还有大并发量,大数据量,集群,分布式之类的技术。

搞这些东西,内容多只要加人做就行。就是业务系统,做不了说明领头的不怎么地。和那个算法屁点关系都没有。再说了,大并发量,大数据量,集群,分布式难道没有专门的人搞?你们没有架构师,没有高程,没有运维的人?你会让一个初哥去搞这些?你招人的时候,出发点就不对,做什么招什么才是正解。
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics