其他分享
首页 > 其他分享> > vijos p1304 回文数 简洁写法

vijos p1304 回文数 简洁写法

作者:互联网

`#include <bits/stdc++.h>

define fu(a, b, c) for (int a = b; a <= c; a++)

define fd(a, b, c) for (int a = b; a >= c; a--)

using namespace std;
int n;
string s;

int main() {
cin >> n >> s;
for (auto &c : s)
c=c>=65?c-55:c-48;
fu(i, 0, 30) {
string s1 = s;
reverse(s1.begin(), s1.end());
if (s1 == s) {
cout <<"STEP="<<i;
return 0;
}
int sz = s.size() - 1;
fd(i, sz, 1) {
s[i]+=s1[i];
s[i - 1]+=s[i]/n,s[i]%=n;
}
s[0] += s1[0];
if (s[0] >= n)
s.insert(0,1,char(s[0]/n)),s[1]%=n;
}
cout << "Impossible!";
}
`

标签:cout,int,fu,s1,p1304,define,vijos,string,回文
来源: https://www.cnblogs.com/lemu/p/13511009.html