CF688B Lovely Palindromes 题解

Content

输入一个数 \(n\),输出第 \(n\) 个偶数位回文数。

数据范围:\(1\leqslant n\leqslant 10^{10^5}\)

Solution

一看这吓人的数据范围,我就明白,这题明显是个结论题。

我们需要先找规律:

第一个:\(11\)
第二个:\(22\)
第三个:\(33\)
第四个:\(44\)
\(...\)
第十个:\(1001\)
第十一个:\(1111\)
\(...\)

嗯?那么第 \(n\) 个岂不是先输出 \(n\),再倒序输出 \(n\)

为什么呢?

因为这就是回文数的性质啊。

因为不管你是多少位数,将其正序输出再倒序输出后总会符合回文数的性质并且是偶数位。

所以直接输出就好了。

Code

#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
using namespace std;

string s;

int main() {
	cin >> s;
	cout << s;
	for(int i = s.size() - 1; i >= 0; --i)	printf("%c", s[i]);
}
posted @ 2021-12-21 20:28  Eason_AC  阅读(36)  评论(0)    收藏  举报