查詢使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 次檢視

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.