题意:输出第n(1 <= n <= 10^100000)大的偶数长度的回文数。(最小的为11)
因为长度是偶数,所以前后两半之间是相互对称的,又因为一个数字的大小主要取决于较高位数的大小,所以数字的前一半决定数的大小,从1开始,1,2,3……对称即可得11,22,33……
所以将数正着输出后再倒着输出一遍即可(数非常大,需用字符串存)
#include<cstdio> #include<cstring> #include<cctype> #include<cstdlib> #include<cmath> #include<iostream> #include<sstream> #include<iterator> #include<algorithm> #include<string> #include<vector> #include<set> #include<map> #include<deque> #include<queue> #include<stack> #include<list> typedef long long ll; typedef unsigned long long llu; const int MAXN = 100 + 10; const int MAXT = 1000000 + 10; const int INF = 0x7f7f7f7f; const double pi = acos(-1.0); const double EPS = 1e-6; using namespace std; string s; int main(){ cin >> s; cout << s; reverse(s.begin(), s.end()); cout << s << endl; return 0; }
时间: 2024-10-15 08:53:11