SSR
題目描述
事情,是這樣的。
有這么一天雙休日的中午。
我剛把我衣服扔進了洗衣機,然后拿了個小板凳坐在旁邊發呆。
然后突然想到這么無聊干脆玩會陰陽師好了,於是從斗篷帽子里掏出我的手機登錄了陰陽師。
看着更新公告里寫着的新SSR式神一目連感嘆了一下:我要是能有個一目連該多好啊
看了一眼我家帥氣的扛把子咕咕,正准備肝困難的時候發現庭院里那一串燈籠里的調查問卷有蝴蝶在繞,於是點進去填了一波在最結尾寫上了我當時的願望:我想要一目連。
然后獎勵了一個符,順手就抽了。本來以為又是R卡,沒想到手機震動了一下。
握草!!!一目連!!!!
當時我就激動的站了起來使勁看了一眼然后仰天大笑以及截圖裝逼。
SSR全稱為superior super rare,特級超稀有。一般為卡牌類游戲最高稀有等級。
題目是給出三個字符,求其升級到SSR所需要的次數。
最小為AAA,最大為SSR;
SSQ升級到SSR需要升級1次,
SRR升級到SSR需要升級19次。
輸入
第一行輸入一個整數T(代表T組數據)
接下來T行,包含3個連續的大寫字母(A~S)
輸出
每個樣例輸出一行
升級到SSR所需的次數
樣例輸入
3
SSR
SRR
AAA
樣例輸出
0
19
6857
提示
SRR升級到SSR的過程:
SRR -> SRS -> SSA ->SSB -> SSC -> ……->SSR 共19次
解法:本質上可看做19進制換算
題解
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int change(char n){
switch(n){
case 'A':return 0;
case 'B':return 1;
case 'C':return 2;
case 'D':return 3;
case 'E':return 4;
case 'F':return 5;
case 'G':return 6;
case 'H':return 7;
case 'I':return 8;
case 'J':return 9;
case 'K':return 10;
case 'L':return 11;
case 'M':return 12;
case 'N':return 13;
case 'O':return 14;
case 'P':return 15;
case 'Q':return 16;
case 'R':return 17;
case 'S':return 18;
default :return -1;
}
}
double power(double x, int n)
{
double val = 1.0;
while (n--)
val *= x;
return val;
}
int main() {
int num;
cin>>num;
while(num--){
char a,b,c;
cin>>a>>b>>c;
int t;
t=change(a)*power(19,2)+change(b)*power(19,1)+change(c)*power(19,0);
cout<<6857-t<<endl;
}
return 0;
}
