查找使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
广告