本帖最后由 白堇翎 于 2013-8-8 00:40 编辑
- package day16;
- /*
- * 需求:
- *
- * 宴会上一共有1225次握手,设每一位参加宴会的人对其他与会人士都有一样的礼节,那么与会人士有多少?(用程序体现)
- * 分析:
- *
- * 1.每一位参加宴会的人都与其他的人握手,就是说第1个人需要与0个人握手,第2个人需要与1个人握手,第3个人需要与2个人握手
- * 2.可以延伸出实际上第X个人实际上握了X-1次手,那么我只需要再定义一个变量来记录总握手次数,就可以获得具体人数了.
- * 3.可以设计一个类,用于专门解决此类问题
- *
- * 步骤
- * 1.新建一个类,新建一个方法.
- * 2.此方法需要传入一个值,那就是一共握了多少次手
- * 2.1需要定义一个计数器用来记录握手的人数
- * 2.2 需要定义一个计数器用于记录握手的总次数
- * 3.在方法内部通过while死循环来计算,直到2号计数器的值等于传入的数字的值,此时打印计数器并且跳出循环
- *
- */
- public class actTest {
- public static void main(String[] args) {
- Party party = new Party();
- party.getNum(1224);
- }
- }
- class Party{
- public void getNum(int num){
- int pos = 1;//计数器1号,用于记录参加宴会人数
- int sum = 0;//计数器2号,用于记录握手次数
- while(true){
- if(pos>num){//茁壮性判断
- System.out.println("握手次数有误,请重新输入");
- break;
- }
- if(sum == num){
- System.out.println("共有"+pos+"人参加宴会");
- break;
- }
- sum = sum+pos-1;//因为第一个人没有握手,所以此处需要减一
- pos++;//人数增加1
- }
- }
- }
复制代码 |