long long 很大
int*int随便装
然后set判重下就好了
#include <cstdio>
#include <iostream>
#include <set>
#include <string>
#include <sstream>
using namespace std;
typedef long long ll;
void solve()
{
ll n, k, ans = 0;
cin >> n >> k;
set<ll> myset;
myset.insert(k);
for (;;) {
ans = max(k, ans);
k = k * k;
stringstream ss;
ss << k;
string s;
ss >> s;
s = s.substr(0, n);
stringstream sss(s);
sss >> k;
if (myset.count(k)) break;
myset.insert(k);
}
cout << ans << endl;
}
int main()
{
//freopen("in.txt", "r", stdin);
int t;
scanf("%d", &t);
while (t--) {
solve();
}
}
博客提及long long数值范围大,int相乘结果可随意存储,还指出使用set进行判重即可。涉及基本数据类型运算和集合判重等信息技术知识。
456

被折叠的 条评论
为什么被折叠?



