有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
4、通过设计一接口,定义有关算术的属性。并创建四个实现该接口的类,分别进行加减乘除的运算。    请教用java如何实现上述功能???

解决方案 »

  1.   

    第一道是约瑟夫环的问题,看一下这个吧
    http://tanlan.iteye.com/blog/1159502
      

  2.   

    通过接口,魔方加减乘除运算// 示例
    public class OperDemo { // 运算执行方法
    public static String exec(double d1, double d2, Oper o) {
    return String.format("%.2f", o.result(d1, d2)); // 保留两位小数
    }

    public static void main(String[] args) {
    double d1 = 12;
    double d2 = 18.4;
    System.out.println("加:"+exec(d1, d2, new Jia()));
    System.out.println("减:"+exec(d1, d2, new Jian()));
    System.out.println("乘:"+exec(d1, d2, new Cheng()));
    System.out.println("除:"+exec(d1, d2, new Chu()));
    }
    }// 接口
    interface Oper {
    public double result(double d1, double d2);
    }class Jia implements Oper {
    public double result(double d1, double d2) {
    return d1 + d2;
    }
    }class Jian implements Oper {
    public double result(double d1, double d2) {
    return Math.abs(d1 - d2); // d1与d2差的绝对值
    }
    }class Cheng implements Oper {
    public double result(double d1, double d2) {
    return d1 * d2;
    }
    }class Chu implements Oper {
    public double result(double d1, double d2) {
    return d1 / d2;
    }
    }