Java数三退一问题代码_数三退一问题算法(Java)
數三退一問題是,有一圈孩子,手拉手圍成一個圈,從第一個孩子開始數1,第二個孩子數2,第三個孩子數3,這時候數3的孩子退出,從下一個孩子開始數1,一直循環,直到最后剩下一個孩子,問這個孩子的位置?
兩種解題思路,一種是將這一組小孩看成一個數組(假設有500個數組),每個元素為boolean型,初始時所有的元素為true,然后開始循環數數,判斷剩下元素是否大于1,首先判斷元素是否為true,true則繼續數,每次數到3時,記錄剩下元素個數,同時將數字置零,以便從0開始重新數。
public class Count3Quit1{
public static void main(String[] args){
boolean[] kids;
kids = ?new boolean[500];
for(int i = 0; i
kids[i] = true;
}
int leftNum = kids.length;
int countNum = 0;
int index = 0;
while(leftNum > 1){
if(kids[index]){
countNum++;
}
if(countNum==3){
kids[index] = false;
countNum = 0;
leftNum--;
}
index++;
if(indedx == 500){
index = 0;
}
}
for(int i = 0;i < kids.length; i++){
if(kids[i]){
System.out.println(i);
}
}
}
}
原文:http://www.cnblogs.com/it-green-hand/p/7471955.html
總結
以上是生活随笔為你收集整理的Java数三退一问题代码_数三退一问题算法(Java)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何编写配置文件 JAVA_Spring
- 下一篇: java美元兑换,(Java实现) 美元