感觉各位都是直接得结论,,
那么说一下我的思路。
考虑用四个变量 A,B,C,D,分别记录初始的 HP
然后直接if
判断
即可
一些细节:
因为我们希望使等级最高,所以当然考虑从可能是 A 等级的情况判断
如果不能一步登天,那么把对应的 A 变量加一,然后判断
然后以此类推
即可
下面代码里的那些*+=1
也就是考虑让他们加上题目允许加的 HP 的点数
参考代码:
#include <iostream>
#include <stdio.h>
using namespace std;
int HP, A, B, C, D;
int main()
{
scanf("%d", &HP);
A=B=C=D=HP;
//if can be "A"
if(A%4==1) {printf("0 A
"); return 0;}
A+=1;
if(A%4==1) {printf("1 A
"); return 0;}
A+=1;
if(A%4==1) {printf("2 A
"); return 0;}
//if can be "B"
if(B%4==3) {printf("0 B
"); return 0;}
B+=1;
if(B%4==3) {printf("1 B
"); return 0;}
B+=1;
if(B%4==3) {printf("2 B
"); return 0;}
//if can be "C"
if(C%4==2) {printf("0 C
"); return 0;}
C+=1;
if(C%4==2) {printf("1 C
"); return 0;}
C+=1;
if(B%4==2) {printf("2 C
"); return 0;}
//if can be "D"
if(D%4==0) {printf("0 D
"); return 0;}
D+=1;
if(D%4==0) {printf("1 D
"); return 0;}
D+=1;
if(D%4==0) {printf("2 D
"); return 0;}
return 0;
}