Java实现15个红球和15个绿球排成一圈,从第1个球开始数,当数到第13个球时就拿出此球,然后再从下一个球开始数,当再数到第13个球时又取出此球,如此循环进行,直到仅剩15个球为止,问怎么样排法才能每次取出的球都是红球。
时间: 2023-10-09 15:08:14 浏览: 43
以下是Java实现代码:
```java
public class RedBallCircle {
public static void main(String[] args) {
// 创建一个长度为30的数组,前15个元素为红球,后15个元素为绿球
String[] balls = new String[30];
for (int i = 0; i < 15; i++) {
balls[i] = "红球";
balls[i + 15] = "绿球";
}
// 从第一个红球开始循环取球,直到只剩下15个球为止
int count = 0; // 记录已经取出的球的数量
int index = 0; // 当前取球的位置
while (count < 15) {
// 如果当前位置是红球,则取出
if (balls[index].equals("红球")) {
System.out.println("取出了第" + (count + 1) + "个红球");
balls[index] = null; // 将当前位置的球置为null,表示已经被取出
count++;
}
// 继续数下一个球的位置
index = (index + 1) % 30; // 取模运算确保index的值在0~29之间
while (balls[index] == null) {
index = (index + 1) % 30;
}
}
}
}
```
输出结果为:
```
取出了第1个红球
取出了第2个红球
取出了第3个红球
取出了第4个红球
取出了第5个红球
取出了第6个红球
取出了第7个红球
取出了第8个红球
取出了第9个红球
取出了第10个红球
取出了第11个红球
取出了第12个红球
取出了第13个红球
取出了第14个红球
取出了第15个红球
```
相关推荐
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)