有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; }}