HDU 5752 Sqrt Bo(水~)

    xiaoxiao2023-06-01  2

    Description 定义,求最小的y使得,其中 Input 多组用例,每组用例输入一个非负整数n(n<10^100),以文件尾结束输入,用例不超过120组 Output 对于每组用例,如果y<=5则输出y,否则输出“TAT” Sample Input 233 233333333333333333333333333333333333333333333333333333333 Sample Output 3 TAT Solution 满足条件的n最大不超过2^31-1,故若串长大于12的时候输出TAT,否则将串存在一个long long里,对其开五次平方判断即可 Code

    #include<cstdio> #include<iostream> #include<cstring> #include<cmath> using namespace std; typedef long long ll; #define maxn 111 char s[maxn]; int main() { while(~scanf("%s",s)) { int len=strlen(s); if(len>12)printf("TAT\n"); else { ll temp=0; for(int i=0;i<len;i++) temp=10ll*temp+s[i]-'0'; int time=0; while(temp!=1&&time<=5) { temp=(ll)(sqrt(1.0*temp)); time++; } if(time<=5)printf("%d\n",time); else printf("TAT\n"); } } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-1262206.html
    最新回复(0)