zoukankan      html  css  js  c++  java
  • HDU 5752 Sqrt Bo (思维题) 2016杭电多校联合第三场

    题目:传送门

    题意:一个很大的数n,最多开5次根号,问开几次根号可以得到1,如果5次还不能得到1就输出TAT。

    题解:打表题,x1=1x2=(x1+1)*(x1+1)-1以此类推。x5是不超过long long的,判断输出即可。

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    using namespace std;
    typedef long long ll;
    char c[1005];
    int main()
    {
        while(cin>>c)
        {
            int len=strlen(c);
            if(len>=15)
            {
                printf("TAT
    ");
            }
            else
            {
                ll n=c[0]-'0';
                ll maxx=4294967295;
                for(int i=1;i<len;i++)
                n=n*10+c[i]-'0';
                if(n==0)
                printf("TAT
    ");
                else if(n==1)
                printf("0
    ");
                else if(n<=3)
                printf("1
    ");
                else if(n<=15)
                printf("2
    ");
                else if(n<=255)
                printf("3
    ");
                else if(n<=65535)
                printf("4
    ");
                else if(n<=maxx)
                printf("5
    ");
                else
                printf("TAT
    ");
            }
        }
    
        return 0;
    }
  • 相关阅读:
    hdu 1058
    hdu 1003
    hdu 1500
    hdu 1083 最大匹配
    hdu 1370 中国剩余定理
    hdu 1299 数论 分解素因子
    hdu 1299
    poj 1144 求割点
    hdu 1068 最大独立集合
    hdu 1054
  • 原文地址:https://www.cnblogs.com/Ritchie/p/5750771.html
Copyright © 2011-2022 走看看