题意其他大佬已经说得很清楚了,尤其是第一篇,所以我就不重复了。
思路:
众所周知,string 库中有个很厉害的函数叫 to_string,它可以将一个数字转换为 string 类型,所以我们可以用它来解决题目中有关 ST 的操作。
但直接在 Dev 中引用这个函数会报错,所以我们要将编译器版本调为 C++11/14,具体方法见这。
解决了这个点,便直接模拟即可。
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| #include<bits/stdc++.h> #include<sstream> using namespace std; string s; bool th(int st){ int len=s.size(); string fuck,sb; for(int i=0;i<len;i++){ string pj=to_string(int(s[i]-'A'+st)); fuck+=pj; } while(fuck.size()>3){ sb.clear(); for(int i=0;i<fuck.size()-1;i++){ sb+=((fuck[i]-'0'+fuck[i+1]-'0')%10+'0'); } fuck=sb; } if(fuck=="100"){ return 1; } return 0; } bool f; int main(){ while(cin>>s){ f=0; for(int i=1;i<=10000;i++){ if(th(i)){ cout<<i<<endl; f=1; break; } } if(f==0){ cout<<":("<<endl; } } return 0; }
|