必威体育Betway必威体育官网
当前位置:首页 > IT技术

数三退一 二种方式的算法 Java

时间:2019-09-29 06:40:00来源:IT技术作者:seo实验室小编阅读:87次「手机版」
 

三退

数三退一,就是指很多个小朋友围成一个圈,从第一个开始数1.2.3. 第三个小朋友就退出 这个圈,以此类推。

第一种方法,以面向过程的方式,此程序的案例十500个小朋友,

public class Count3Quit {

public static void main(String[] args) {

boolean []arr=new boolean [500];

for(int i=0;i<arr.length;i++){

arr[i]=true;

}

int leftCount=arr.length;

int countNun=0;

int index=0;

while(leftCount>1){

if(arr[index]==true){

countNun++;

if(countNun==3){

countNun=0;

arr[index]=false;

leftCount--;

}

}

index++;

if(index==arr.length){

index=0;

}

}

for(int i=0;i<arr.length;i++){

if(arr[i]==true){

System.out.println(i);

}

}

}

}

第二种方法是面向对象的思维

public class Count3quit2 {

public static void main(String[] args) {

kidCirle a=new kidCirle(500);

int countNun=0;

kid k=a.frist;

while(a.count>1){

countNun++;

if(countNun==3){

a.delete(k);

countNun=0;

}

k=k.right;

}

System.out.println(a.frist.id);

}

}

class kid{

int id;

kid left,right;

}

class kidCirle{

int count=0;

kid frist,last;

kidCirle(int n){

for(int i=0;i<n;i++){

add();

}

}

void add(){

kid k=new kid();

k.id=count;

if(count<=0){

k.left=k;

k.right=k;

frist=k;

last=k;

}else{

k.right=frist;

k.left=last;

frist.left=k;

last.right=k;

last=k;

}

count++;

}

void delete(kid k){

if(count<=0){

return;

}

if(count==1){

frist=last=null;

}else{

k.left.right=k.right;

k.right.left=k.left;

if(k==frist){

frist=k.right;

}else if(k==last){

last=k.left;

}

}

count--;

}

}

相关阅读

推荐几款可以直接在手机上编程的app(包含Java、C、Pyt

这里介绍几款可以在手机上编程的app,分别是: 1.java和Android:AIDE集成开发环境。 2.C语言:c语言编译器、C4droid。 3.python:QPyth

微信怎么扫二维码付款?怎么使用二维码付款?

微信怎么扫二维码付款?怎么使用二维码付款?微信付款已经是很普遍的事情,现在购物买东西基本上是微信扫码付款,大型超市都是扫描买家

闲鱼二手车司法拍卖要想成功过户一定要注意这几点

闲鱼二手车司法拍卖是指法院在闲鱼上进行拍卖的汽车,闲鱼正式宣布将淘宝拍卖业务引入。跟淘宝拍卖合作的海关、法院等机构、基金会

Java中notify和notifyAll的区别 - 何时以及如何使用

Java  notify   vs notifyAll   notify和notifyAll方法之间有什么区别是棘手的Java问题之一! Condition 是个什么玩

微信名片怎么二次转发?怎么发送微信名片?

在日常生活中,使用微信交流的人非常多,加微信好友更是很常见的事情,现在的微信添加好友有很多种方法,最常见的就是输入微信号、微信扫

分享到:

栏目导航

推荐阅读

热门阅读