使用Java实现面向对象编程(11)
约瑟夫环问题:
package com.zb.test;
public class Yuesefu
{
public static void main(String[] args)
{
//500个人数组
boolean[] b = new boolean[500];
for(int i = 0;i < b.length;i++)
{
b[i] = true; //表示所有人都是活的
}
int sum = b.length; //总数为500
int index = 0; //人数的下标
int count = 0; //报数的变量
while(sum > 1)//当存活人数>1人
{
if(b[index])//如果当前这人是活着的
{
count++; //往上报数
if(count == 3) //如果报到3 枪毙
{
sum--; //总数-1
b[index] = false; //当前这人死亡
count = 0; //重新开始报数
}
}
index++; //下标移到下一个人
if(index == 500) //如果下标到500表示 1圈已经结束 重新计数
{
index = 0;
}
}
for(int i = 0;i < b.length;i++)
{
if(b[i])
{
System.out.println("活着的位置是:"+(i+1));
}
}
}
}
方法
getMethod: 获取类中以public 修饰的方法 如果存在继承 父类的方法也就存在于子类
getDeclareMethod: 获取类中声明的方法 即使以private修饰