江西财经大学第一届程序设计竞赛 D

链接:https://www.nowcoder.com/acm/contest/115/D
来源:牛客网

题目描述

事情,是这样的。
有这么一天双休日的中午。
我刚把我衣服扔进了洗衣机,然后拿了个小板凳坐在旁边发呆。
然后突然想到这么无聊干脆玩会阴阳师好了,于是从斗篷帽子里掏出我的手机登录了阴阳师。
看着更新公告里写着的新SSR式神一目连感叹了一下:我要是能有个一目连该多好啊
看了一眼我家帅气的扛把子咕咕,正准备肝困难的时候发现庭院里那一串灯笼里的调查问卷有蝴蝶在绕,于是点进去填了一波在最结尾写上了我当时的愿望:我想要一目连。
然后奖励了一个符,顺手就抽了。本来以为又是R卡,没想到手机震动了一下。
握草!!!一目连!!!!
当时我就激动的站了起来使劲看了一眼然后仰天大笑以及截图装逼。
---------------------------------------------------------------------------------------
SSR全称为superior super rare,特级超稀有。一般为卡牌类游戏最高稀有等级。
 
题目是给出三个字符,求其升级到SSR所需要的次数。
最小为AAA,最大为SSR;
SSQ升级到SSR需要升级1次,
SRR升级到SSR需要升级19次。

输入描述:

第一行输入一个整数T(表示样例个数)
接下来T组样例
每个样例一行,包含三个连续的大写字母(A - S)

输出描述:

每个样例输出一行
升级到SSR所需的次数
示例1

输入

3
SSR
SRR
AAA

输出

0
19
6857

备注:

SRR升级到SSR的过程:
SRR -> SRS -> SSA ->SSB -> SSC -> ……->SSR 共19次

没有这备注,我怎么也想不明白为什么是19
 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 int StringToInt(const string& str){
 5     int length = str.length();
 6     int sum = 0;
 7     for(int i = 0; i < length; i++){
 8         int temp = str[i] - 'A';
 9         sum = 19*sum + temp + 1;
10      }
11     return sum;
12 
13 }
14 int main(){
15     int t;
16     cin>>t;
17     while(t--){
18         string s;
19         cin>>s;
20         cout<<StringToInt("SSR")-StringToInt(s)<<endl;
21     }
22     return 0;
23 }
原文地址:https://www.cnblogs.com/yinghualuowu/p/8904119.html