四个一组进行处理就可以,反正也不长,怎么搞都行
#include<bits/stdc++.h> using namespace std; char f(char x, int y)//这是转变字符的函数 { if(x + y > 122)//看看是不是超过了z { x = 65 + y - (122 - x); return (char)x; } else if(x + y > 90 && x <= 90)//看看是不是超过了Z,注意要判断x<=90,因为Z与a就隔了7个字符,而y是属于[0,9]的,所以可能会有问题 { x = 97 + y - (90 - x); return (char)x; } else { x += y; return (char)x; } } int main() { int tr[20]; char ar[20]; string s; cin>>s; int a = 0, b = 0; for(int i = 0; i <= s.size(); i++) { if((s[i] >= 65 && s[i] <= 90) || (s[i] >= 97 && s[i] <= 122)) ar[++a] = s[i]; else tr[++b] = s[i] - '0'; } for(int i = 4; i >= 1; i--) { cout<<f(ar[i],tr[i]); } for(int i = 8; i >= 5; i--) { cout<<f(ar[i],tr[i]); } for(int i = 12; i >= 9; i--) { cout<<f(ar[i],tr[i]); } for(int i = 16; i >= 13; i--) { cout<<f(ar[i],tr[i]); } cout<<'\n'; return 0; }剩下的三个题,一个是A题切蛋糕,看题干感觉好长,就真懒得读
还有一个G题感觉是个“博弈”,但是又不太像博弈,有点思路但又感觉不太对,先放放
最后一个是L题,好像是个建图的题,没学过,等有空回来再补吧
我一定会回来了的……(逃