1 solutions
-
0
嘿,小朋友,咱们来看看这个卡牌游戏的题哈。题目说小明在玩卡牌游戏,他有好多卡牌,每张卡牌都能对敌人造成一定的伤害。敌人有自己的血量,小明要按顺序一张一张出牌,看看用多少张牌能把敌人的血量打到小于等于0,要是把所有牌都用完了敌人还没死,那就输出 -1。
咱来一步步解决这个问题哈。
首先呢,咱们得知道有多少张卡牌,还有敌人的血量是多少,这就需要从输入里读取这两个数。
然后呀,再读取每张卡牌的伤害值。
接着呢,咱们就一张一张出牌,每出一张牌,就把敌人的血量减去这张牌的伤害值,同时记录用了多少张牌。
要是敌人的血量小于等于0了,那就说明胜利啦,这时候记录的牌数就是答案。
要是把所有牌都出完了,敌人血量还是大于0,那就输出 -1。
下面是解决这个问题的C++代码哦。
#include<bits/stdc++.h> using namespace std; int main() { // n 是卡牌数目,b 是敌人血量 long long n, b; cin >> n >> b; // 存储每张卡牌的伤害值 vector<long long> cards(n); for (int i = 0; i < n; i++) { cin >> cards[i]; } // 记录用了多少张卡牌 int usedCards = 0; for (int i = 0; i < n; i++) { // 每出一张牌,减少敌人的血量 b -= cards[i]; usedCards++; // 如果敌人血量小于等于0,就胜利啦 if (b <= 0) { cout << usedCards << endl; return 0; } } // 用光所有卡牌还不能胜利,输出 -1 cout << -1 << endl; return 0; }
- 1
Information
- ID
- 223
- Time
- 1000ms
- Memory
- 64MiB
- Difficulty
- 9
- Tags
- # Submissions
- 10
- Accepted
- 8
- Uploaded By