用逻辑控制编写伪程序代码:1、抢凳子游戏:10个人,9个凳子,每轮一个人抢不到凳子淘汰,然后拿掉一个凳子,继续下一轮,直到剩下最后一个人;
2、编写一个算法,当输入3个正整数,判断能组成三角形的类型:等边、等腰、不等边、非三角形(提示两边之和大于第三边)。伪代码中需要增加注释。
3、一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过了多少米。希望大家能帮忙解决,学习了。

解决方案 »

  1.   

    第一题看不懂,后面两题不是伪码,我自己做练习了... public class C070704 {
    public static  void fall(int height,int cnt){
    if(height == 0){
    System.out.println(cnt);
    }else{
    fall(height/2,cnt+height/2);
    }
    }

    public static void computeTriangle(int a,int b,int c){
    int  cnt = 0;
    if(a==b) cnt++;
    if(a==c) cnt++;
    if(b==c) cnt++;
    if(a+b<c || a+c<b || c+b < a ){
    cnt = 2;
    }
    System.out.println(Triangle.valueByIndex(cnt));

    }
    public static void main(String[] args){
    C070704.fall(100, 0) ;
    C070704.computeTriangle(3, 4, 4) ;
    C070704.computeTriangle(3, 3, 3) ;
    C070704.computeTriangle(3, 4, 5) ;
    C070704.computeTriangle(3, 4, 6) ;


    } enum Triangle {  
     Triganle, Isosceles , NonTriangle , Equilateral, ;

    public static Triangle valueByIndex(int index) {  
    for (Triangle t : Triangle.values()) {  
                if (t.ordinal() == index) {  
                    return t;  
                }  
            }  
            return null;  
        }  

      

  2.   

    第二题人家说了当是3个正整数。如果是负数结构就是看天意了。第二次 其实第七次就弹不起来了。不过还是就修改下不过还是再改下
    public static  void fall(int height,int cnt,int aggregate,int limit){
    if(height == 0 || cnt ==limit){
    System.out.println(aggregate);
    }else{
    fall(height/2,++cnt ,aggregate+height/2,limit);
    }
    }
      

  3.   

    来自wiki:自然数(例如1、2、3)、负的自然数(例如−1、−2、−3)与零(0)合起來统称为整数
    正整數:大於0的整數
      

  4.   

    第1题,这是简单的数组问题,在没有学集合的情况下,这么解决.不知道符合你的答案否.
    public class ChouJiang {
      public static void main(String[] args)
      {   
      int n=10;//选号数的范围
      int cj=9;//需要抽将几个数
      int k=0;//变量K
      Random random=new Random(); 
       //创造 所选范围的数组
      int []arr1=new int[n];
      for(int m=0;m<arr1.length;m++)
      {        k++;
          arr1[m]=k;  
      }

      //创建1-10个人数组
     int []arr=new int[cj];
     for(int i=0;i<arr.length;i++)
      { 
     int P = random.nextInt(n);//在范围数组里随即选出 一个数
        arr[i]=arr1[P];//在范围数组里随即选出 一个数
        System.out.print(arr[i]+"没抢到凳子\r\n");
      
      //从范围数组里把这个数删掉,最后面的不变
        //比如:6没抢到凳子 1 2 3 4 5 7 8 9 10 10  7替换6 8替换7....,最后6没了
         for(int j=P;j<arr1.length-1;j++)
      {
      arr1[j]=arr1[j+1];
      }
      n=n-1;//缩小取数范围   
        }  System.out.print("最后剩下是"+arr1[0]+"\t");
      }
    }
      

  5.   

    第三题package com.walkman.forum_one;/**
     * @author 严振
     * @小球落下,每次再弹起的高度为之前的一半,再落下。求第10次落下时经过的路程。
     * 
     * 算法: 
     * while(次数<10){ 
            1 计算落下的高度 
                                         如果 为第一次落下
                                                  高度为起始高度 
                                         否则 上次弹起高度的一半 
            2 再弹起的高度为之前的一半 
            3 累加 } 输出
     */
    public class BallDown { public static void main(String[] args) {
    BallDown bd = new BallDown();
    bd.countLength(10);
    } public void countLength(int n) {
    double sum = 0;
    double start = 10.0;
    double bound = 0; while (n > 0) {
    sum += start;
    bound = start / 2;
    sum += bound;
    n--;
    start = bound; // 再落下的高度为上一次弹起的高度
    }
    System.out.println(sum);
    }
    }
    第二题package com.walkman.forum_one;
    /**
     * 
     * @author 严振
     * @输入三个正整数并判断其为何种三角形
     * @简单算法如下:
     * 三条边长度a,b,c
     *   if a=b=c 
     *     等边三角形
     *   else (a=b或者b=c或者a=c)
     *     等腰三角形
     *   else(a+b>c)
     *     不为三角形
     */
    public class TriangleJudge { public static void main(String[] args) {
    TriangleJudge tj_one = new TriangleJudge();
    TriangleJudge tj_two = new TriangleJudge();
    TriangleJudge tj_three = new TriangleJudge();

    tj_one.judgeByNum(6, 6, 6);
    tj_two.judgeByNum(5, 5, 4);
    tj_three.judgeByNum(2, 3, 11);
    } public void judgeByNum(int a, int b, int c) {
    if(a==b && b==c && c==a){
    System.out.println("等边三角形");
    } else if(a==b || b==c || c==a) {
    System.out.println("等腰三角形");
    } else if((a+b) > c || (a+c)>b || (c+b) > a){
    System.out.println("不为三角形");
    }
    }
    }
    第二题确实太简单了。第一题 思考思考再说。