查找使HP大于当前值的升级次数的C++代码


假设我们有一个数字n。在一个游戏中,每个角色有四种不同的生命值(HP)。类别如下:

  • 类别A:如果HP的形式为(4n + 1)

  • 类别B:如果HP的形式为(4n + 3)

  • 类别C:如果HP的形式为(4n + 2)

  • 类别D:如果HP的形式为4n

这4个类别从高到低排序为A > B > C > D。因此,类别A最高,类别D最低。在玩游戏时,玩家可以增加角色的HP。现在,Amal希望你最多增加他的HP 2(即,增加0、1或2)。我们必须找到他应该增加多少HP才能获得最高可能的类别?

因此,如果输入类似n = 98,则输出将为1 B,因为98属于C类(4*24 + 2),将其增加1,它将升级到B类,但如果我们将其增加到2,它将变为100(4*25),属于D类。因此,最多可以达到B类。

步骤

为了解决这个问题,我们将遵循以下步骤:

if n mod 4 is same as 2, then:
   return "1 B"
Otherwise
   return |(n mod 4) - 1| and 'A'

示例

让我们看看以下实现以获得更好的理解:

#include <bits/stdc++.h>
using namespace std;
void solve(int n){
   if (n % 4 == 2)
      cout << "1 B";
   else
      cout << abs(n % 4 - 1) << " A";
}
int main(){
   int n = 98;
   solve(n);
}

输入

98

输出

1 B

更新于: 2022年3月15日

185 次查看

开启你的职业生涯

通过完成课程获得认证

开始学习
广告