使用 sstream 方便输入输出,
用于判断某个元素是否被访问过, 在数组开不下的时候可以使用 set集合
#include <iostream> #include <sstream> #include <set> using namespace std; int next(int n, int k){ stringstream ss; ss << (long long)k*k; string s = ss.str(); if (s.size() > n) s = s.substr(0, n); int ans; stringstream ss2(s); return ans; } int main(){ int T; cin >> T; while (T--) { int n, k; cin >> n >> k; set<int> s; int ans = k; while (!s.count((k))) { s.insert(k); if (k > ans) ans = k; k = next(n, k); } cout << ans << endl; } return 0; }