描述
大范写题目的时候,总是不开long long,有一个正整数数字n,现在请你帮忙,告诉糊涂的大范要用什么数据类型存储比较合适。
输入
多组案例。一个正整数T,表示案例的数量。(T<=100)
每组案例输入正整数x
对于 33% 的样例有 x <= 1e15。
对于 66% 的样例有 x <= 1e30。
对于 100% 的样例有 x <= 1e50。
输出
如果数字小于int,输出int。
如果数字大于int且未超出long long int,输出long long int。
如果数字超过 long long int ,输出string。
样例输入
3
1
922337203685
9223372036854775899
样例输出
int
long long int
string
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
const string intmax = "2147483647";//-(1<<31)+1
const string llmax = "9223372036854775807";//-(1ll<<63)+1
bool cmp(string a, string b)//比较范围
{
if (a.size() == b.size())
{
return a > b;
}
return a.size() > b.size();
}
int main()
{
int T;
cin >> T;
while (T--)
{
string a;//unsigned long long 肯定是不行的
cin >> a;
if (cmp(a, llmax))
{
puts("string");
}
else if (cmp(a, intmax))
{
puts("long long int");
}
else
{
puts("int");
}
}
return 0;
}