黑马程序员技术交流社区

标题: 让我们的技术起飞吧 [打印本页]

作者: 田磊阳    时间: 2013-3-29 20:35
标题: 让我们的技术起飞吧
本帖最后由 黄玉昆 于 2013-4-8 09:00 编辑

活动说明:为提高大家积极性,促进大家学习的兴趣,提升大家的基础,特发此活动贴。
活动时间:2013年3月30日开始,截止到论坛的第20届交流区开办为止。

[fly]让我们的技术起飞吧[/fly]

活动内容:
主要说明:
鼓励大家出一些小程序题,其他童鞋可进行相应的回复,出题者也可给出自己的答案。具体规则如下:
出题者要求:
1、格式要求:
小程序标题:xxx(注:对于题目内容太长的,请写上标题,十个字之内)
小程序题目:xxxx
小程序答案:xxxx(需写上自己的思路)
上一题楼层及时间:第xxx楼,时间为:2013年xx月xx日(注:第一次出题,可不写)
上一题推荐的答案:第xxx楼,推荐理由:xxx(注:第一次出题,可不写)
本题目楼层及时间:第xxx楼,时间为:2013年xx月xx日(这个必须写,为方便给分)
2、题目要求:
第一、给出的题目不能过于简单,如:打印数组的内容、计算1到100的和,等等的题目,题目的程序至少要有两步的思考;当然,也不能太难,不能在基础范围之外(高新技术之前的内容皆可)。如下面示例的题目
第二、给出的题目最好不要在网上随便搜一道题就粘贴上来,一经发现,将关闭此题。
第三、给出的题目需要也同时给出题目的一点思路或提示,如果自己也不能做出来的,也可以出这个题,但是对于都认为难的,此题将关闭。
第四、不得copy别人的题目,如果出现了同样或相似的题目,将关闭第二个题目。
答题者要求:
回复者必须要点击出题者楼层下面的那个回复,不要直接回复我这个帖子,操作如下:找对需要答题的题目那一楼层,如第14楼,那么这楼下面(15楼左上)有个回复,点击这个回复即可,如图:

1、格式要求:
出题者楼层及时间:第xxx楼,时间为:2013年xx月xx日
小程序题目:xxx(直接复制出题者的小程序标题或题目即可)
小程序思路:...........(注:如果自己实在没思路,可不写此项,建议写上)
小程序答案:xxx(特别强调,一定要将代码写入代码框,如有不知道怎么操作的,请看:http://bbs.itheima.com/thread-42978-1-1.html的“⑦添加相应的代码”)
2、答题要求:
第一、杜绝复制别人答案的现象,发现后扣除技术分,严重者将禁言。
第二、每题仅限五名回复者,看到上面答题者次数为5了,请不要再回复了。例外:如果你的回答特别好,并且思路、分析、注释、总结等等都特别全,可以回复,但必须注明:“全面回复”。
第三、每题须写明你的思路,并加上相应的注释,不需每句代码都加注释,但是至少在必要出写上注释。
注:如果有为提到的问题,我们会给出比较合理的处理方式。请谅解,谢谢
活动奖励:
我想这也是大家最关心的了。只要大家按要求做,出题出的好,答题答的漂亮,技术分不会亏待的。
活动正式奖励:
出题者奖励:
第一、符合要求的题目,将加1技术分,否则不加分。
第二、每人仅限出一题,第三天方可出第二题。连续出题者,不给分,严重者(连出三题)将扣分。
第三、坚持出题者,出到第五题了,多加1技术分。如果每次自己都写了思路,并给出自己的答案,且答案思路清晰,注释齐全等等,坚持三次的,将加2技术分。需要自己说明一下:我已坚持出题五次,楼层为:xx楼,xx楼,xx楼,xx楼,xx楼。不说明不给分。
答题者奖励:
第一、答题者必须回复三道题或以上才考虑给1技术分,或者回答的一道题思路清晰,注释齐全的,给1技术分。
第二、每人每天最高给2技术分。对于答的特别好,并且思路、分析、注释、总结等等都特别全的,可给这样的一道题就加1技术分。
第三、发现copy别人答案的,扣除1技术分。
第四、坚持答题五天的,送出2技术分,坚持15天的,给出3技术分,也就是说,你第15天一共获得了5技术分。请相应的说明一下,格式如上。
示例:
出题者:
小程序标题:建立员工模型
小程序题目:假如在开发一个系统时需要对员工进行建模,员工有3个属性:姓名、工号以及工资,并含有一个方法是如何工作(实现的方法直接打印即可);创建一个普通员工类和一个经理类,经理也是员工,除了含有员工的属性外,还有一个奖金属性,请使用继承的思想设计出员工类,普通员工类和经理类,要求类中提供必要的方法进行属性访问。
小程序答案:(出题者可写,可不写,我在这里作为例子就不写了)
上一题楼层及时间:无(因为这里是第一题,就不涉及上一题了,就不用写了)
上一题推荐的答案:无 (因为这里是第一题,就不涉及上一题了,就不用写了)
回复者楼层:109楼
本题目楼层及时间:第133楼,时间为:2013年4月3日

答题者:(注:需要点击出题者即133楼下面的回复,再进行回复哦。操作方法如上面的答题者要求)
出题者楼层及时间:第133楼,时间为:2013年4月3日
答题者次数:我是本题的第3位答题者
小程序题目:建立员工模型
小程序思路:
1、建模需要是一个员工模型,即抽象出来的类。
员工类:name、id、salary,抽象方法工作。
普通员工类:继承员工类,实现工作的方法
经理类:继承了员工类,并与自己的bonus(奖金),并实现工作的方法。
小程序答案:
  1. public class AbstractDemo {
  2.         public static void main(String[] args) {
  3.                 //创建数组,存入员工
  4.                 Employee[] es = new Employee[2];
  5.                 //创建普通员工对象
  6.                 es[0] = new Manager("ZS", 1, 8500, 2000);
  7.                 //创建经理对象
  8.                 es[1] = new Pro("WS", 2, 6500);
  9.                 for(Employee e : es){
  10.                         System.out.println(e.getName() + ":" + "," + e.getId() + "," + e.getSalary() + ";");
  11.                         e.work();
  12.                 }
  13.         }
  14. }
  15. //构建员工类模型
  16. abstract class Employee{
  17.         //定义成员变量
  18.         private String name;
  19.         private int id;
  20.         private double salary;
  21.         //初始化Employee
  22.         public Employee(String name, int id, double salary) {
  23.                 this.name = name;
  24.                 this.id = id;
  25.                 this.salary = salary;
  26.         }
  27.         //公共访问成员方法
  28.         public double getSalary() {
  29.                 return salary;
  30.         }
  31.         public void setSalary(double salary) {
  32.                 this.salary = salary;
  33.         }
  34.         public String getName() {
  35.                 return name;
  36.         }
  37.         public int getId() {
  38.                 return id;
  39.         }
  40.         //各类员工工作的方式
  41.         public abstract void work();
  42. }
  43. //创建普通员工类继承员工
  44. class Pro extends Employee {
  45.         //初始化普通员工
  46.         public Pro(String name, int id, double salary) {
  47.                 super(name, id, salary);
  48.         }
  49.         //实现普通员工的work方法
  50.         public void work(){
  51.                 System.out.println(this.getName() + " is working....");
  52.         }
  53. }
  54. //创建经理类,继承员工类
  55. class Manager extends Employee {
  56.         private double bonus;
  57.         private double salary;
  58.         //初始化经理类
  59.         public Manager(String name, int id, double salary, double bonus) {
  60.                 super(name, id, salary);
  61.                 this.bonus = bonus;
  62.         }
  63.         //重构经理类成员获取工资的方法
  64.         public double getSalary() {
  65.                 return salary + bonus;
  66.         }
  67.         //获取和设定奖金的方法
  68.         public double getBonus() {
  69.                 return bonus;
  70.         }
  71.         public void setBonus(double bonus) {
  72.                 this.bonus = bonus;
  73.         }
  74.         //实现经理类work的方法
  75.         public void work(){
  76.                 System.out.println(this.getName() + " is working...");
  77.         }
  78. }
复制代码

作者: 田磊阳    时间: 2013-3-29 20:35
本帖最后由 黄玉昆 于 2013-3-29 20:53 编辑

大家开始抢楼吧
作者: 曹春贵    时间: 2013-3-29 20:38
沙发一个先{:soso_e113:}
作者: 黄小贝    时间: 2013-3-29 20:40
这个帖子8错,必须顶
作者: 曹春贵    时间: 2013-3-29 20:42
支持活动哦!
作者: 胡帅冰    时间: 2013-3-29 20:46
支持。支持。这个活动好。
作者: 曹春贵    时间: 2013-3-29 20:55
楼主你把第一个沙发占了,我们怎么算啊,嘿嘿,从第二个开始算第一个吗?
作者: 黄玉昆    时间: 2013-3-29 20:58
没人来抢楼吗?我来抢一层
作者: 曹睿翔    时间: 2013-3-29 20:59
规则好长啊,看的晕了,先占一楼
作者: 邵震    时间: 2013-3-29 20:59
本帖最后由 qwe8234118 于 2013-3-29 21:04 编辑

版主  你这个帖子我还是没看懂  回帖方式看迷糊了。。。。。
作者: 邵震    时间: 2013-3-29 20:59
继续抢楼层啊  
作者: 邵震    时间: 2013-3-29 21:00
我还抢楼层
作者: 邵震    时间: 2013-3-29 21:00
抢楼层啊  吼吼
作者: HM刘俊    时间: 2013-3-29 21:02
抢楼先。。
作者: 葛迅    时间: 2013-3-29 21:05
先抢了再说
作者: 葛迅    时间: 2013-3-29 21:05
我也继续抢
作者: HM刘俊    时间: 2013-3-29 21:08
本帖最后由 HM刘俊 于 2013-3-29 21:10 编辑

标题:一个小算法题。
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。   
答案:
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:   
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。   
(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。   
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。  
import java.util.*;
public     class     lianxi04{
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.print( "请键入一个正整数:     ");
        int    n    = s.nextInt();
        int k=2;
        System.out.print(n + "=" );
        while(k <= n) {
          if(k == n) {System.out.println(n);break;}
            else if( n % k == 0) {System.out.print(k + "*");n = n / k; }
                    else    k++;
                   }
     }
    }

作者: 田磊阳    时间: 2013-3-29 21:11
我抢···············
作者: 邵震    时间: 2013-3-29 21:11
。。。。。你自己也抢啊
作者: 曹春贵    时间: 2013-3-29 21:20
抢了么·······
作者: 曹春贵    时间: 2013-3-29 21:20
抢楼啊,亲们!
作者: 曹春贵    时间: 2013-3-29 21:20
23,就抢这一个
作者: 邵震    时间: 2013-3-29 21:21
为了分数拼了
作者: 邵震    时间: 2013-3-29 21:21
23楼也是我的
作者: 曹春贵    时间: 2013-3-29 21:21
23,就抢这一个{:soso_e113:}
作者: 邵震    时间: 2013-3-29 21:21
哈哈  是我的
作者: 曹春贵    时间: 2013-3-29 21:21
······继续
作者: 曹春贵    时间: 2013-3-29 21:22
33,我去,抢这个
作者: 曹春贵    时间: 2013-3-29 21:23
没人一起抢吗
作者: 曹春贵    时间: 2013-3-29 21:25
没有人配合抢么?
作者: 高新星    时间: 2013-3-29 21:26
抢楼咯!!!
作者: 曹春贵    时间: 2013-3-29 21:27
抢楼啊!!!!!!!
作者: 曹春贵    时间: 2013-3-29 21:27
抢楼啊!!!!!!!
作者: VOIDMAIN    时间: 2013-3-29 21:36
先占一层楼
作者: 陈新    时间: 2013-3-29 21:38
没见有人出题呢?都是抢楼的啊。
作者: 陈新    时间: 2013-3-29 21:40
没有想象中的人多啊。。。。。都在学习呢吧。。。。
作者: 刘海陆    时间: 2013-3-29 21:41
这个很给力,必须抢
作者: 种生祥    时间: 2013-3-29 21:41
貌似很不错
作者: 王亚东    时间: 2013-3-29 21:42
题目呢。。
作者: 何红卫    时间: 2013-3-29 21:44
抢楼咯,抢分咯
作者: 何红卫    时间: 2013-3-29 21:44
我要分啊
作者: 何红卫    时间: 2013-3-29 21:44
再抢一遍
作者: 何红卫    时间: 2013-3-29 21:44
哇哈哈,是我的了
作者: 高新星    时间: 2013-3-29 21:44
抢楼咯!!!
作者: 黑马伍哲沂    时间: 2013-3-29 21:45
象征抢楼。。。。。
作者: 陈新    时间: 2013-3-29 22:05
可以很水很水的那种抢楼么?求解答。
作者: 陈新    时间: 2013-3-29 22:11
可以很水很水的那种抢楼么?求解答。
作者: HM刘博    时间: 2013-3-29 22:15
这个活动不错,顶一个
作者: HM刘博    时间: 2013-3-29 22:15
这个活动不错,顶一个
作者: HM刘博    时间: 2013-3-29 22:15
这个活动不错,顶一个
作者: HM刘博    时间: 2013-3-29 22:15
这个活动不错,顶一个
作者: HM刘博    时间: 2013-3-29 22:15
这个活动不错,顶一个
作者: 高新星    时间: 2013-3-29 22:15
继续抢楼咯!!!技术分!!!
作者: HM刘博    时间: 2013-3-29 22:15
这个活动不错,顶一个
作者: HM刘博    时间: 2013-3-29 22:17
这个活动不错,顶一个
作者: HM刘博    时间: 2013-3-29 22:18
这个活动不错,顶一个
作者: HM刘博    时间: 2013-3-29 22:18
这个活动不错,顶一个
作者: HM刘博    时间: 2013-3-29 22:18
这个活动不错,顶一个
作者: HM刘博    时间: 2013-3-29 22:18
这个活动不错,顶一个
作者: HM刘博    时间: 2013-3-29 22:19
这个活动不错,顶一个
作者: 陈新    时间: 2013-3-29 22:19
可以很水很水的那种抢楼么?求解答。
作者: 丘凤光    时间: 2013-3-29 22:31
本帖最后由 丘凤光 于 2013-3-29 22:42 编辑

哈哈,刚才错了,现在还没到发题目的时间呢。先抢楼
作者: 丘凤光    时间: 2013-3-29 22:45
奖励截止到3月30号晚23:00,奖励楼层:1、3、13、23、33、43、53、63、73
怎么没人抢了呢?
作者: 丘凤光    时间: 2013-3-29 22:45
奖励截止到3月30号晚23:00,奖励楼层:1、3、13、23、33、43、53、63、73
这么好的机会怎么大家都不积极了呢?
作者: 丘凤光    时间: 2013-3-29 22:46
虽然不知道能不能一个人连续抢多层楼,但是时间就要到了。版主原谅啊
作者: 丘凤光    时间: 2013-3-29 22:46
本帖最后由 丘凤光 于 2013-3-29 22:51 编辑

嗯嗯,大家都干嘛去了呢?都不来抢楼
作者: 丘凤光    时间: 2013-3-29 22:46
本帖最后由 丘凤光 于 2013-3-29 22:50 编辑

额,多抢楼也不得加分?
作者: 丘凤光    时间: 2013-3-29 22:46
本帖最后由 丘凤光 于 2013-3-29 22:49 编辑

真不好意思,一个人抢了那么多层楼
作者: 丘凤光    时间: 2013-3-29 22:47
本帖最后由 丘凤光 于 2013-3-29 22:48 编辑

奖励截止到3月30号晚23:00
算了,我一个人抢吧,谁让这么久都没人来呢
作者: 黄玉昆    时间: 2013-3-29 22:48
提醒一下:

连续抢楼者,只能获得一次加分机会

超过三次不予加第二次的分数



作者: 黑马李超    时间: 2013-3-29 23:00
来迟了 先抢个再说
作者: 丘凤光    时间: 2013-3-30 00:02
本帖最后由 丘凤光 于 2013-3-30 00:08 编辑

活动正式开始了啊,先抢第一个出题吧。(网站的时间是不是慢了?)



作者: 丘凤光    时间: 2013-3-30 00:08
本帖最后由 丘凤光 于 2013-3-30 18:14 编辑

小程序标题:最大公因数公最小倍数
小程序题目:求两个数的最大公因数、求两个数的最小公倍数
小程序答案:
  1. /*
  2. 需求:求出两个给定的数的最大公因数和最小公倍数

  3. 思路:
  4. 1、最大公因数:辗转相除,即一个数模另一个数,如果模数不为零,取被模数等于模数,模数等于模。如此辗转直到模数变为零。此时被模数就为这两个数的最大公因数。
  5. 2、最小公倍数:因为最大公因数*最小公倍数=两个数的积,所以解方程得最小公倍数。
  6. */
  7. public class GYSGBS
  8. {
  9.     public static int gys(int m, int n)
  10.     {
  11.         //最大公因数使用辗转相除法来求

  12.     }
  13.    
  14.     public static int gbs(int m, int n)
  15.     {
  16.         //两个数的积除以两个数的最大公因数即为最小公倍数

  17.     }
  18.    
  19.     public static void main(String[] args)
  20.     {
  21.         //输出最大公因数最小公倍数

  22.     }
  23. }
复制代码
求最大公因数和最小公倍数是我们在各种测试中经常遇到的,但是在平时开发中不常用。所以我们经常是学了又忘,再次遇到的时候却一下子转不过弯来。
出这题主要是和大家一起复习一下最大公因数和最小公倍数的求法。特别是最大公因数的辗转想除。

嗯哪,上面的提示与思路是我自己的想法。题目解法不固定格式不固定,只要求出最大公因数最小公倍数就好。大家还有其他更好的求解的方法吗???

上一题楼层及时间:无
上一题推荐的答案:无
本题目楼层及时间:第74楼,时间为:2013年3月30日
作者: 陈山洪    时间: 2013-3-30 07:22
我来也。。。。,
作者: 陈山洪    时间: 2013-3-30 07:27
我来也。。。。。
作者: 陈山洪    时间: 2013-3-30 07:28
我也来赚点钱。。。
作者: 陈山洪    时间: 2013-3-30 07:28
我也来赚点钱。。。
作者: 陈山洪    时间: 2013-3-30 07:29
盖楼,盖楼,努力盖楼。
作者: 陈山洪    时间: 2013-3-30 07:29
盖楼,盖楼,努力盖楼。
作者: 陈山洪    时间: 2013-3-30 07:30
暂时就到这吧
作者: 黄玉昆    时间: 2013-3-30 07:45
黄玉昆 发表于 2013-3-29 22:48
提醒一下:
连续抢楼者,只能获得一次加分机会
超过三次不予加第二次的分数

请多谅解啊,就是想让更多人参与进来,可能昨晚好多人没注意到这个活动。不过,很谢谢你支持,也谢谢你的热情
作者: 陈新    时间: 2013-3-30 07:55
早安,JAVA。。。。。。
作者: 陈新    时间: 2013-3-30 07:55
早安,JAVA。。。。。
作者: 陈新    时间: 2013-3-30 07:56
早安,JAVA。。。。。。
作者: 王瑞    时间: 2013-3-30 08:23
顶起来~~~~~~~~~~~~~~~~~~~~~~
作者: 王亚东    时间: 2013-3-30 08:40
丘凤光 发表于 2013-3-30 00:08
小程序标题:最大公因数公最小倍数
小程序题目:求两个数的最大公因数、求两个数的最小公倍数
小程序答案: ...

出题者楼层及时间:第77楼,时间为:2013年3月30日
答题者次数:我是本题的第1位答题者,上一个答题者楼层数为:无。
小程序题目:最大公因数公最小倍数
小程序思路:
1、最大公因数:用较小的数假作最大公因数去判断较大的数,不符合,较小数以此除2、3、4。。直到值为1
2、最小公倍数:两数积除以两数的最大公因数
  1. public class Demo01 {

  2.         public static int gcd(int m, int n) {
  3.                 // 最大公因数使用辗转相除法来求
  4.                 int min = m<=n?m:n;                //获取两个数中较小的一个
  5.                 int max = min==m?n:m;        //获取较大的一个
  6.                 for(int i = 1;i<=min;i++){
  7.                         if(min%i==0){               
  8.                                 int temp = min/i;//最大公因数从min开始,以此min/2,min/3...
  9.                                 if(max%temp == 0){        //直到min/i后的值可以被max整除
  10.                                         return temp;
  11.                                 }
  12.                         }
  13.                 }
  14.                 return 1;        //当然上面的return最终至少会返回1,这个执行不到,但为了程序不报错。
  15.         }

  16.         public static int lcm(int m, int n) {
  17.                 // 两个数的积除以两个数的最大公因数即为最小公倍数
  18.                 return m*n/gcd(m,n);
  19.         }

  20.         public static void main(String[] args) {
  21.                 System.out.println("(324, 42)的最大公因数为:" + gcd(324, 42));
  22.                 System.out.println("(324, 42)的最小公倍数为:" + lcm(324, 42));
  23.         }
  24. }
复制代码

作者: 陈新    时间: 2013-3-30 08:46
哇哦。。。。哇哦。。。
作者: 邵震    时间: 2013-3-30 08:46
抢楼咯  哈哈
作者: 邵震    时间: 2013-3-30 08:46
抢楼咯 哈哈
作者: 陈新    时间: 2013-3-30 08:46
盖一层。。。。。。。
作者: 陈新    时间: 2013-3-30 08:46
盖一层。。。。。。。
作者: 余勇    时间: 2013-3-30 08:56
好活动,支持
作者: xyh19    时间: 2013-3-30 08:58
额、、、还能抢到么?试试看
作者: 杜超    时间: 2013-3-30 09:19
此贴必火
作者: 洪建超    时间: 2013-3-30 09:26
。。。。。。。。。
作者: 杜超    时间: 2013-3-30 09:28
占一个楼层
作者: 杜超    时间: 2013-3-30 09:32
占一个楼层
作者: xyh19    时间: 2013-3-30 09:33
还能抢到么?试试看
作者: xyh19    时间: 2013-3-30 09:33
还能抢到么?试试看
作者: 杜超    时间: 2013-3-30 09:34
占一个楼层




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