Giả sử chúng ta có một số n. Trong một trò chơi, mỗi nhân vật có bốn điểm sức khỏe (HP) khác nhau. Các loại như sau -
-
Loại A:Nếu HP ở dạng (4n + 1)
-
Loại B:Nếu HP ở dạng (4n + 3)
-
Loại C:Nếu HP ở dạng (4n + 2)
-
Loại D:Nếu HP ở dạng 4n
4 danh mục này được sắp xếp từ cao nhất đến thấp nhất là A> B> C> D. Vì vậy, danh mục A là cao nhất và danh mục D là thấp nhất. Trong khi chơi trò chơi, người chơi có thể tăng HP của ký tự. Bây giờ, Amal muốn bạn tăng HP của anh ta nhiều nhất là 2 (tức là thêm 0, 1 hoặc 2). Chúng tôi phải tìm xem anh ta nên tăng HP của mình lên bao nhiêu để nó có loại cao nhất có thể?
Vì vậy, nếu đầu vào là n =98, thì đầu ra sẽ là 1 B, vì 98 thuộc loại C là (4 * 24 +2), bằng cách tăng nó lên 1, nó sẽ được nâng cấp lên loại B, nhưng nếu chúng tôi tăng nó lên 2, nó sẽ là 100 (4 * 25), đó là danh mục D. Vì vậy, ở mức tối đa danh mục B là có thể.
Các bước
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
if n mod 4 is same as 2, then: return "1 B" Otherwise return |(n mod 4) - 1| and 'A'
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
#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); }
Đầu vào
98
Đầu ra
1 B