题意:
给你一个数,问你最少开多少次,可以变成1。
如果超过五次还没有变成1,就输出TAT
分析:
开根号是比
logn
还强的函数,超过一定界限就是”TAT”。
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
#define pr(x) cout << #x << ": " << x << " "
#define pl(x) cout << #x << ": " << x << endl;
struct jibancanyang
{
string str;
long long x;
void fun() {
while (cin >> str) {
bool ok = true;
int ans = 0;
if (str.size() > 10) ok = false;
else {
x = 0;
for (auto c : str) {
x = x * 10 + c - '0';
}
if (x == 0) ok = false;
else {
while (x != 1) {
ans++;
x = sqrt(x);
}
if (ans > 5) ok = false;
}
}
if (ok) printf("%d\n", ans);
else puts("TAT");
}
}
}ac;
int main()
{
#ifdef LOCAL
freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
#endif
ac.fun();
return 0;
}