题目描述:
思路分析:我们通过分析题目情况,发现其实是一个美剧暴力的题目,而且下面的取值是与n的位数的个数是有关系的,我们需要先得到n的个数,记作num,我们暂且把答案记作a b我们发现答案是na-b的情况下,
b=a(n的位数)-答案的位数
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
#include<vector>
#define x first
#define y second
using namespace std;
int t, n, num, m, k;
int funt(int x)
{
int res = 0;
while (x)
{
x /= 10;
res++;
}
return res;
}
int main()
{
cin >> t;
while (t--)
{
vector<pair<int,int>>ans;
cin >> n;
num = funt(n);
for (int i = 1; i <= 1e4; i++)//最大就是1e4
{
for (int j = 1; j <= min(i * num, 6); j++)
{
string s = to_string(n);
while (s.size() < j) s += s;
while (s.size() > j) s.pop_back();
int m = stoll(s);
if (m == i * n - (num * i - j) && num * i - j >= 1)
{
ans.push_back({ i,num*i-j });
}
}
}
cout << ans.size() << endl;
for (auto t : ans)
{
cout << t.x << " " << t.y << endl;
}
}
return 0;
}