Gym - 101550G- Game Rank (模拟)

题意:

给出总的输赢情况和排位上分机制,问最终的等级是多少。(炉石没玩过,但大都差不多)

思路:

模拟即可

#include 
using namespace std;
string s;
int Rank ,Star,num;//段位,当前段位的获星数,连胜数
void up(int v)
{
  Star+=v;
  if(Rank>=21 && Rank<=25 && Star>2) Rank--,Star-=2;//满星升级
  else if(Rank>=16 && Rank<=20 && Star>3) Rank--,Star-=3;
  else if(Rank>=11 && Rank<=15 && Star>4) Rank--,Star-=4;
  else if(Rank>=1 && Rank<=10 && Star>5)  Rank--,Star-=5;
}
void down()
{
  if(Rank>20) return;//不掉星
  if(Star)
  {
      Star--;
      return;
  }
  //以下处理掉段情况
  if(Rank<20)
  {
      Rank++;
      if(Rank>=16 && Rank<=20) Star = 2;
      else if(Rank>=11 && Rank<=15) Star = 3;
      else if(Rank>=1 && Rank<=10) Star = 4;
  }
}
int main()
{
    while(cin>>s)
    {
      Rank = 25 ,Star = 0;
      num = 0;
      for(int i=0;i=6&&num>=3) up(2);
              else up(1);
          }
      }
      if(Rank) printf("%d\n",Rank);
      else printf("Legend\n");
    }
    return 0;
}

 

你可能感兴趣的:(模拟,ACM解题记录)