HDU5752 Sqrt Bo

題目連接:http://acm.hdu.edu.cn/showproblem.php?pid=5752


【題意】f(n)=[n],f^y(n)=f( f^(y-1)(n) ).對於一個數n,求解y=?使得f^y(n)=1,y>5或者不存在時輸出TAT。


【分析】很明顯的分段函數,分段判斷一下範圍,特判一下0就能A掉了。


【代碼】

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
#define LL long long
int main(){
    string s;
    while(cin>>s){
        if(s.length()>10){
            cout<<"TAT\n";
            continue;
        }
        LL num=0;
        for(int i=0;i<s.length();++i)
            num=num*10+s[i]-'0';
        if(num==0){
            cout<<"TAT\n";
            continue;
        }
        if(num<(1<<2)){
            cout<<1<<endl;
            continue;
        }
        if(num<(1<<4)){
            cout<<2<<endl;
            continue;
        }
        if(num<(1<<8)){
            cout<<3<<endl;
            continue;
        }
        if(num<(1<<16)){
            cout<<4<<endl;
            continue;
        }
        if(num<((1ll)<<32)){
            cout<<5<<endl;
            continue;
        }
        cout<<"TAT\n";
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章