CF66A Petya and Java

题目描述

小 Petya 最近开始参加一个编程俱乐部。很自然地,他面临选择一种编程语言的问题。经过长时间的思考后,他意识到 Java 是最佳选择。选择 Java 的主要理由是它有一个非常大的整数数据类型,称为 BigInteger。 但在参加了几节俱乐部的课程后,Petya 发现,不是所有任务都需要用到 BigInteger 类型。实际上,在某些任务中,使用小的数据类型会更加方便。因此,他有了一个问题:“如果要存储一个正整数 $n$,应该使用哪种整数类型?” Petya 只知道以下五种整数类型: 1)byte 占用 1 字节,可以存储 $-128$ 到 $127$ 之间的数字。 2)short 占用 2 字节,可以存储 $-32768$ 到 $32767$ 之间的数字。 3)int 占用 4 字节,可以存储 $-2147483648$ 到 $2147483647$ 之间的数字。 4)long 占用 8 字节,可以存储 $-9223372036854775808$ 到 $9223372036854775807$ 之间的数字。 5)BigInteger 可以存储任意大小的整数,但它不是一种基本类型,并且使用它进行运算会慢很多。 上述类型的取值范围均包含边界值。 Petya 想从这个列表中选择能存储正整数 $n$ 的最小类型。由于 BigInteger 的速度较慢,Petya 将它置于最后。请帮助他做出选择。

输入格式

第一行包含一个正整数 $n$。它最多包含 $100$ 位数字,且不含前导 $0$。$n$ 不能表示为空字符串。 请不要在 C++ 中使用 `%lld` 格式符读写 64 位整数。推荐使用 cout(也可以使用 `%I64d`)。

输出格式

输出能存储自然数 $n$ 的列表中第一个类型,其结果为 “byte, short, int, long, BigInteger” 之一(即输出其中的一种类型即可),要求符合上述数据类型的规定。

说明/提示

由 ChatGPT 5 翻译