7-13 打妖怪 (10分)

7-13 打妖怪 (10分)

话说孙大圣保唐僧西天取经,路上遇到一妖怪。妖怪共有 v 滴血,大圣每打一棒就能使妖怪失去 h 滴血,妖怪一旦没血就会立即死去。大圣打 n 棒刚好将妖怪打死。请编写程序,输入 v 和 h,输出 n。

输入样例

2510 1000

输出样例

3
#include<iostream>
using namespace std;
int main()
{
	int a,b,c;
	cin>>a>>b;
	if(a%b!=0)
		c=a/b+1;
	else
		c=a/b;
	cout<<c<<endl;
	return 0;
}
好的,我可以为您提供一个简单的Java线程实现葫芦娃打妖怪的示例。 首先,我们需要创建两个类:`Huluwa` 和 `Monster` ,它们分别表示葫芦娃和妖怪。这两个类都有一个`fight`方法,分别表示打斗。 ```java public class Huluwa { public void fight() { System.out.println("葫芦娃打妖怪!"); } } public class Monster { public void fight() { System.out.println("妖怪打葫芦娃!"); } } ``` 然后,我们创建一个 `BattleField`类,表示战场。在 `BattleField` 类中,我们可以创建多个葫芦娃和妖怪对象,并将它们放在一个数组中。然后,我们创建两个线程分别代表葫芦娃和妖怪,让它们不断地交替执行 `fight` 方法。 ```java public class BattleField { public static void main(String[] args) { Huluwa[] huluwas = new Huluwa[3]; Monster[] monsters = new Monster[3]; for (int i = 0; i < huluwas.length; i++) { huluwas[i] = new Huluwa(); monsters[i] = new Monster(); } Thread huluwaThread = new Thread(() -> { while (true) { for (Huluwa huluwa : huluwas) { huluwa.fight(); try { Thread.sleep(1000); // 线程睡眠 1s } catch (InterruptedException e) { e.printStackTrace(); } } } }); Thread monsterThread = new Thread(() -> { while (true) { for (Monster monster : monsters) { monster.fight(); try { Thread.sleep(1000); // 线程睡眠 1s } catch (InterruptedException e) { e.printStackTrace(); } } } }); huluwaThread.start(); monsterThread.start(); } } ``` 在上面的代码中,我们使用了 Lambda 表达式来创建线程。在 `Huluwa` 线程中,我们使用一个 `for` 循环遍历所有的葫芦娃,然后依次调用它们的 `fight` 方法,并在每次调用后使线程睡眠 1 秒钟。在 `Monster` 线程中,我们使用同样的方式遍历所有的妖怪,并依次调用它们的 `fight` 方法。 最后,我们启动这两个线程,并让它们不断地交替执行 `fight` 方法,从而模拟葫芦娃和妖怪的战斗过程。 需要注意的是,上面的代码中只是一个简单的示例,它并没有考虑到多线程可能出现的问题,比如数据竞争、死锁等等,实际应用中还需要更加仔细地设计和实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Andy.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值