黑马程序员技术交流社区

标题: 面试题,真的有些难,求大神指导 [打印本页]

作者: Jeffery    时间: 2015-8-24 00:26
标题: 面试题,真的有些难,求大神指导
编写一个程序,获取10个1至20的随机数,要求随机数不能重复?
重点是还不能重复,急!
作者: T-l-H、小生    时间: 2015-8-24 00:47
*思路:
*                1.定义一个集合,用于存储随机数
*                2.产生随机数,并存储进集合中。
*                3.对集合的长度进行判断。
*步骤:
*                1.由于随机数不能重复,所以使用Set集合。为了保证值的唯一,所以使用HashSet集合.
*                2.通过Set集合的add方法,将生成的随机数存储进HashSet集合。
*                3.通过Set集合的size方法对集合的长度进行判断,如果产生的随机数达到10个,那么将退出循环。
* */
public class Test {
        public static void main(String[] args) {
                //存储Integer的Set集合
                Set<Integer> set = new HashSet<Integer>();
                //判断集合的长度,如果符合了一定的长度,那么循环结束
                for(;set.size()<=9;){
                        //产生1~20之间的随机数
                        int i = new Random().nextInt(20)+1;
                        //添加进Set集合中
                        set.add(i);
                }
                //打印下集合的元素
                System.out.println(set);
        }
}


作者: 巧克黑力    时间: 2015-8-24 08:13
看着好简单的说
作者: sven556677    时间: 2015-8-24 08:50
1楼厉害
作者: a1ccwt    时间: 2015-8-24 09:00
这个题的思路在于一定要判断生成的随机书要遍历,以免出现相同的。
作者: pengbeilin    时间: 2015-8-24 11:52
这个给你吧!好好把这里面的题做做!

33道题.rar

57.63 KB, 下载次数: 136


作者: 风随风飞扬    时间: 2015-8-24 20:25
还没学到集合{:2_41:}
作者: 壊亊唑侭    时间: 2015-8-24 20:43
路过看看
作者: Fozei    时间: 2015-8-24 20:51
加油学习,互相鼓励,正在看视频,感谢发三十三道题的朋友,正愁看视频,不知道写些什么代码呢

作者: code_linux    时间: 2015-8-24 20:56
这思路,,,我也是醉了。霸气!!!
作者: forjunjian    时间: 2015-8-24 21:21
这思路用了treeSet,厉害!
作者: kitboxer    时间: 2015-8-24 21:23
这不就是彩票抽奖游戏算法吗?给你个思路,数组里放1-20这20个整数,生成随机数抽取下标,当然了,每次抽取后怎么把确保这个数不被再次抽到,需要一个小技巧。具体怎么操作,嘿嘿,参考《java核心技术》第一卷里的彩票算法
作者: kingxiao    时间: 2015-8-24 21:49
会思想不会写呀
作者: cemabenteng    时间: 2015-8-24 21:49
那重点是什么啊,不管是点招还是社招,面试题都差不多,没有很难的啊,都是普通的题,别太着急了
作者: T-l-H、小生    时间: 2015-8-24 22:13
cemabenteng 发表于 2015-8-24 21:49
那重点是什么啊,不管是点招还是社招,面试题都差不多,没有很难的啊,都是普通的题,别太着急了 ...

点招是限时手写代码,比社招难好么?思路和注释都要写上,真的感觉差不多么?
作者: cemabenteng    时间: 2015-8-25 22:07
T-l-H、小生 发表于 2015-8-24 22:13
点招是限时手写代码,比社招难好么?思路和注释都要写上,真的感觉差不多么? ...

不管是社招还是点招,题都是平时的练习题难度,如果你觉得这题也难的话最好是再学学吧,就业班进度很快,
作者: cemabenteng    时间: 2015-8-25 22:08
T-l-H、小生 发表于 2015-8-24 22:13
点招是限时手写代码,比社招难好么?思路和注释都要写上,真的感觉差不多么? ...

我们班80个人,一次就过的就有五十个,最后没有过的只有几个人,你觉得这叫难吗?
作者: dingl    时间: 2015-8-25 22:25
继续努力,学到集合就容易了
作者: T-l-H、小生    时间: 2015-8-26 01:09
本帖最后由 T-l-H、小生 于 2015-8-26 01:10 编辑
cemabenteng 发表于 2015-8-25 22:07
不管是社招还是点招,题都是平时的练习题难度,如果你觉得这题也难的话最好是再学学吧,就业班进度很快, ...

1:创建一个类Fraction,它有两个属性:分子和分母
2:在这个类中定义两个方法Fraction plus(Fraction r)和Fraction multiply(Fraction r)分别用来计算两个分数相加和相乘
3:定义一个测试类,传入一个分数分别调用方法计算出两个分数相加和相乘后的结果,要求对结果进行简化,比如2/8简化成1/4,3/9简化成1/3.就是求他们的最大公约数,小学四年级的知识。
----------------------------------
编写10个多线程,第一个线程从1加到10,第二个线程从11加到20。。。第十个线程从91加到100,最后把10个线程结果相加
----------
最后一道题就是去除集合中的“abc”字符串那道题了。就这个是平时连续碰到最多的。

我们点招碰到了这三题,就第一题就坑了不少时间,班里67个,第一次过了27个,包括我。
你觉得是我们基础不行还是我们运气差?碰到了这种题目?键盘敲都好说,我就说第一题,20分钟手写,那张纸都写不下好么?到了面试的时候,还要键盘敲两三道题。
反观社招的呢?尤其是先付费的,前面三个环节直接满分,第四个环节可以敲三天,百度都查完啦。不拿满分都对不起自己,然后最后视频面试,也是敲个两三道题。拿个40分,总分就有110分了,先付费110分进个就业班比抬炸弹还稳。。。。多的就不说了,自己手写一下那道题试试。很明显点招比社招多了个手写代码的环节,你还认为差不多的话。只能说我比你渣渣。。。。
作者: liuwuzhou    时间: 2015-8-26 06:36
这里大神真多
作者: 文景    时间: 2015-8-26 06:46
我是来膜拜大神的
作者: 文景    时间: 2015-8-26 06:47
希望到时我也能这么厉害
作者: cemabenteng    时间: 2015-9-1 20:42
T-l-H、小生 发表于 2015-8-26 01:09
1:创建一个类Fraction,它有两个属性:分子和分母
2:在这个类中定义两个方法Fraction plus(Fraction r)和 ...

你觉得点招很难么???我们班79个人,一次性过的51个
作者: 王盟    时间: 2015-9-1 21:05
厉害,又学习了一招。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2