สมมติว่าเรามีตัวเลข n ในเกม ตัวละครมี HP 4 หมวด:
- หมวด A: HP = 4n + 1
- หมวด B: HP = 4n + 3
- หมวด C: HP = 4n + 2
- หมวด D: HP = 4n
ลำดับจากสูงไปต่ำ: A > B > C > D อมลอยากเพิ่ม HP สูงสุด 2 (คือ 0, 1, หรือ 2) หาว่าควรเพิ่มเท่าไหร่เพื่อได้หมวดสูงสุด
เช่น ถ้าอินพุตคือ n = 98 เอาต์พุตจะเป็น 1 B เพราะ 98 อยู่หมวด C (4*24+2) เพิ่ม 1 ได้หมวด B เพิ่ม 2 ได้ 100 (4*25) หมวด D ดังนั้นสูงสุดคือ B
ขั้นตอนการแก้ปัญหา
if n mod 4 == 2:
return "1 B"
otherwise:
return |(n mod 4) - 1| และ '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