A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 神之梦 金牌黑马   /  2013-8-6 21:11  /  9051 人查看  /  87 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 神之梦 于 2013-8-10 00:55 编辑

说明:
      此次活动时间同样不会超过三天,先到先得。



                                          
                                              此次活动结束,好像没多少人来答题
                                这么简单的题目都没几个人来答
                                  但却很多人在说技术分难得
                                           无语中!!!
            

题目:
      宴会上一共有1225次握手,设每一位参加宴会的人对其他与会人士都有一样的礼节,那么与会人士有多少?(用程序体现)

要求:
      1、题目须自己做出,有问题请及时联系楼主。
       2、直接在本帖回复,代码放在代码块中。
       3、代码要有适当注释,无注释无分。
       4、由于题目不难,先做出来且结果正确的前10位2分,后来者且结果正确的1分(这就是先到先得哦)。














评分

参与人数 1黑马币 +10 收起 理由
Sword + 10 赞一个!

查看全部评分

87 个回复

倒序浏览
抢分来啦
回复 使用道具 举报
沙发  哈哈  
回复 使用道具 举报
本帖最后由 夜写意 于 2013-8-6 22:22 编辑

看题,虽然不一定会做。答案:
  1. /*
  2. * 设计思路:每有一个人到场都会和已经在会场的人握手,此时,该与会者握手次数就是在他之前已经到会场的人数,也就算总人数减1。
  3. * */
  4. public class Test
  5. {
  6.         public static void main(String[] args)
  7.         {
  8.                 int sum=0;
  9.                 int person;
  10.                 for(person = 1;sum<1225;person++ )
  11.                 {
  12.                         sum = sum+person-1;
  13.                 }
  14.                 System.out.println("与会总人数为:"+(person-1));//由于在sum==1225的时候,person执行了person++,所以要减掉1.
  15.         }
  16.         
  17. }
复制代码

评分

参与人数 1技术分 +2 收起 理由
神之梦 + 2

查看全部评分

回复 使用道具 举报
开始做题~
回复 使用道具 举报
过来看看。。。。
回复 使用道具 举报
看看怎样的题目
回复 使用道具 举报
楼主握手的次数好像不以哦,是不是次数给错啦
回复 使用道具 举报
go     go........
回复 使用道具 举报
{:soso_e133:}我就是偷偷看看题目我会不会
回复 使用道具 举报
本帖最后由 牛海亮 于 2013-8-6 22:00 编辑
  1. ublic class ShakeHands {

  2.         /**
  3.          * 宴会上一共有1225次握手,设每一位参加宴会的人对其他
  4.          * 与会人士都有一样的礼节,那么与会人士有多少?
  5.          * 分析:2个人的话,从A看来,握手一次,从B看来,握手一次,2*1
  6.          * 3个人的话,对每个人来说均握手两次3*2
  7.          * 4个人的话对每个人来说均握手三次 4*3
  8.          * 五个人  5*4
  9.          * 但A和B握手和B和A握手 重复计算了一次,所以该再除以2,即得握手的总次数
  10.          * @param args
  11.          */
  12.         public static void main(String[] args) {
  13.                 // TODO Auto-generated method stub
  14.                 int i = 2;//握手至少得两个人
  15.                 while(true)
  16.                 {
  17.                         
  18.                         int sum = i*(i-1); //计算当人数为i时握手的总次数的两倍
  19.                         if(sum == 2450)//和总握手次数的两倍比较,相等时即得与会的人数,输出返回即可
  20.                         {
  21.                                 System.out.println("与会人士共有"+i+"个");
  22.                                 break;
  23.                         }
  24.                         i++;//如果握手的次数的两倍未达到总握手次数的两倍,再添加一个人,如此循环下去,直到握手的次数的两倍达到2450.
  25.                 }
  26.                         

  27.         }

  28. }
复制代码

评分

参与人数 1技术分 +2 收起 理由
神之梦 + 2

查看全部评分

回复 使用道具 举报
我想看题,谢谢
回复 使用道具 举报
/*
如果有3个人,则第一个人可以和那两个人握手,第二个人也可和两个人握手,
第三个人也可和前两个人握手,即第个人都与其它人握手,因此是(n-1)*n=握手次数/2
*/
public class Test
{
public static void main(String args[]){
  int ren=getRen(1225);
  System.out.println("人数为:"+ren);
}
public static int getRen( int c){
  int sum=c*2;
  int i=1;
  while(true){
   if (sum==(i-1)*i)
   {
    break;
   }
   i++;
  }
  return i;
}
}

评分

参与人数 1技术分 +2 收起 理由
神之梦 + 2

查看全部评分

回复 使用道具 举报
为了爱好,为了提升
回复 使用道具 举报
import java.text.DecimalFormat;

/**
* 宴会上一共有1225次握手,设每一位参加宴会的人对其他与会人士都有一样的礼节,那么与会人士有多少?
* @author userZyn
*/
public class Count {

        public static void main(String[] args) {
                /**
                 * 假设有n人与会,1225 = n*(n+1)/2
                 * n*(n+1) = 1225*2
                 * n*n + n - 2450 = 0
                 * n = (-1 + (1*1 + 4*2450)开方)/(2*1)
                 */
                int derta = 1*1+4*1225*2;
                double personNumber = java.lang.StrictMath.pow(derta, 1.0/2);
                DecimalFormat bd = new DecimalFormat("########");//将double类型的数据进行四舍五入       
                System.out.print(bd.format(personNumber));               
        }
}
回复 使用道具 举报
看看,顶顶顶
回复 使用道具 举报
什么东东
回复 使用道具 举报
看看题目。
回复 使用道具 举报
import java.text.DecimalFormat;
/**
* 宴会上一共有1225次握手,设每一位参加宴会的人对其他与会人士都有一样的礼节,那么与会人士有多少?
* @author userZyn
*/
public class Count {

         public static void main(String[] args) {
                 /**
                  * 假设有n人与会,1225 = n*(n+1)/2
                  * n*(n+1) = 1225*2
                  * n*n + n - 2450 = 0
                  * n = (-1 + (1*1 + 4*2450)开方)/(2*1)
                  */
                 int derta = 1*1+4*1225*2;
                 double dertaKai = java.lang.StrictMath.pow(derta, 1.0/2);
                 DecimalFormat bd = new DecimalFormat("########");//将double类型的数据进行四舍五入        
           int personNum = Integer.parseInt(bd.format(dertakai)); //将字符串转换成int
                 int result = (-1 + personNum)/2;
                 System.out.println("与会人数为:"+ result);
         }
}

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 少了一个人

查看全部评分

回复 使用道具 举报
计算机不给力,我都无语了... ...
回复 使用道具 举报
12345下一页
您需要登录后才可以回帖 登录 | 加入黑马