java给小朋友分苹果怎么写·
时间: 2024-05-27 09:12:29 浏览: 14
欢迎提问!关于Java给小朋友分苹果的问题,可以使用以下代码实现:
import java.util.Scanner;
public class DivideApples {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入小朋友的个数:");
int n = sc.nextInt();
System.out.print("请输入苹果的个数:");
int m = sc.nextInt();
int result = m / n; //平均分配的苹果数
int remainder = m % n; //剩余的苹果数
System.out.println("每个小朋友分配了" + result + "个苹果");
System.out.println("还剩" + remainder + "个苹果");
}
}
以上代码可以让用户输入小朋友的个数和苹果的个数,然后计算出平均分配的苹果数和剩余的苹果数,并输出结果。希望可以帮到您!
相关问题
. 模拟三个老师同时给50个小朋友发苹果,每个老师相当于一个线程。Java代码怎么写
同样的问题,这里提供一个使用 Java 语言的示例代码:
```java
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class Teacher extends Thread {
private String name;
private int apples;
private Lock lock;
public Teacher(String name, int apples, Lock lock) {
this.name = name;
this.apples = apples;
this.lock = lock;
}
@Override
public void run() {
while (true) {
lock.lock();
if (apples > 0) {
apples--;
System.out.println(name + " 发给一个小朋友一个苹果,还剩 " + apples + " 个苹果");
lock.unlock();
} else {
lock.unlock();
break;
}
}
}
public static void main(String[] args) throws InterruptedException {
int apples = 50;
Lock lock = new ReentrantLock();
Teacher[] teachers = new Teacher[3];
for (int i = 0; i < teachers.length; i++) {
teachers[i] = new Teacher("Teacher " + (i+1), apples, lock);
}
for (Teacher teacher : teachers) {
teacher.start();
}
for (Teacher teacher : teachers) {
teacher.join();
}
}
}
```
以上代码创建了一个 `Teacher` 类用于模拟老师的行为,每个老师都是一个线程。在 `main` 方法中,首先创建了一个锁对象 `lock` 用于保证对苹果的发放是同步的。然后创建了三个老师的线程,并启动这些线程。最后等待所有线程执行完毕。
在 `Teacher` 类中,首先定义了 `name`、`apples` 和 `lock` 成员变量,分别表示老师的名字、还剩下的苹果数量和用于同步的锁对象。在 `run` 方法中,首先获取锁对象 `lock`,然后判断苹果的数量是否大于 0。如果大于 0,则发给一个小朋友一个苹果,并打印此次发放的信息。否则释放锁对象并退出循环。
这样就实现了模拟三个老师同时给50个小朋友发苹果的功能。
java 模拟三个老师同时给50歌小朋友发苹果,每个老师相当于一个线程
好的,您可以使用 Java 的多线程技术来实现这个模拟场景。首先,您需要定义一个小朋友对象和一个老师对象,然后将 50 个小朋友随机分配给三个老师。
下面是一个基本的示例代码:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class TeacherAndChildrenDemo {
public static void main(String[] args) {
List<Teacher> teachers = new ArrayList<>();
teachers.add(new Teacher("Teacher A"));
teachers.add(new Teacher("Teacher B"));
teachers.add(new Teacher("Teacher C"));
List<Child> children = new ArrayList<>();
for (int i = 1; i <= 50; i++) {
children.add(new Child("Child " + i));
}
Random random = new Random();
for (Child child : children) {
int index = random.nextInt(3);
teachers.get(index).addApple(child);
}
for (Teacher teacher : teachers) {
teacher.start();
}
}
static class Child {
private String name;
private int appleCount;
public Child(String name) {
this.name = name;
}
public String getName() {
return name;
}
public int getAppleCount() {
return appleCount;
}
public void addApple() {
appleCount++;
}
}
static class Teacher extends Thread {
private String name;
private List<Child> children = new ArrayList<>();
public Teacher(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void addApple(Child child) {
children.add(child);
}
@Override
public void run() {
for (Child child : children) {
System.out.println(getName() + " gives an apple to " + child.getName());
child.addApple();
}
}
}
}
```
在上面的代码中,我们创建了三个老师和 50 个小朋友,然后随机分配每个小朋友给其中的一个老师。接着,我们启动每个老师的线程,让他们发苹果给自己负责的小朋友。
当一个老师线程运行时,它会遍历自己负责的所有小朋友,并给他们发苹果。每个小朋友都有一个 `addApple()` 方法来增加自己的苹果数量。
这个示例代码只是一个基本的模拟,您可以根据自己的需求进行修改和扩展。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.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)
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)