日期:2014-05-20  浏览次数:20605 次

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



  请教用java如何实现上述功能???

------解决方案--------------------
第一道是约瑟夫环的问题,看一下这个吧
http://tanlan.iteye.com/blog/1159502
------解决方案--------------------
通过接口,魔方加减乘除运算
Java code

// 示例
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;
    }
}