Petya and Java strcmp的使用



Time Limit: 2000MS Memory Limit: 262144K 64bit IO Format: %I64d& %I64u


Description

Little Petya has recently started attending a programming club.Naturally he is facing the problem of choosing a programminglanguage. After long considerations he realized that Java is thebest choice. The main argument in favor of choosing Java was thatit has a very large integer data type, called BigInteger.

But having attended several classes of the club, Petya realizedthat not all tasks require using the BigInteger type. It turned outthat in some tasks it is much easier to use small data types.That's why a question arises: "Which integer type to use if onewants to store a positive integer n?"

Petya knows only 5 integer types:

1) byte occupies 1 byteand allows you to store numbers from  - 128 to 127

2) short occupies 2 bytesand allows you to store numbers from  - 32768 to 32767

3) int occupies 4 bytesand allows you to store numbers from  - 2147483648 to 2147483647

4) long occupies 8 bytesand allows you to store numbers from  - 9223372036854775808 to 9223372036854775807

5) BigInteger can storeany integer number, but at that it is not a primitive type, andoperations with it are much slower.

For all the types given above the boundary values are includedin the value range.

From this list, Petya wants to choose the smallest type that canstore a positive integer n. Since BigInteger worksmuch slower, Peter regards it last. Help him.

Input

The first line contains a positivenumber n. It consists of no morethan 100 digits and doesn'tcontain any leading zeros. The number n can't berepresented as an empty string.

Please, do not use %lld specificator toread or write 64-bit integers in C++. It is preffered touse cout (also you mayuse %I64d).

Output

Print the first type from the list "byte, short, int, long, BigInteger", that can store the naturalnumber n, in accordance with the datagiven above.

Sample Input

Input
127

Output
byte

Input
130

Output
short

Input
123456789101112131415161718192021222324

Output
BigInteger
以前没真正弄明白函数strcmp的具体用途,以为只能比较字符,原来比较字符就是比较ASCLL码,!!也就是可以比较数字大小(当然是在位数同样的前提下),这样的话,先判断
位数在进行比较,这题就AC了!
#include<iostream>
using namespace std;
int main()
{     int l;
char c[105];
while(scanf("%s",c)!=EOF)
{
        l=strlen(c);
        if(l<3||l==3&&strcmp(c,"127")<=0) 
                cout<<"byte"<<endl;
        else 
                if(l<5||l==5&&strcmp(c,"32767")<=0)
                        cout<<"short"<<endl;
                else
                        if(l<10||l==10&&strcmp(c,"2147483647")<=0)
                                cout<<"int"<<endl; 
                        else
                        if(l<19||l==19&&strcmp(c,"9223372036854775807")<=0)
                                        cout<<"long"<<endl;
                                else
                                        cout<<"BigInteger"<<endl;                          
}
return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值