题意:五种数据类型,每种类型能存储的数据范围不同,占据的字节数也不同,求存储n可用的最少字节的数据类型。
思路:以字符串形式表示n,用函数strcmp进行比较。
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main(){
char a[105];
int len;
scanf("%s",a);
len = strlen(a);//n的位数
if (len<3 || len == 3 && strcmp(a,"127")<=0)
printf("byte\n");
else if (len<5||len==5&&strcmp(a,"32767") <= 0)
printf("short\n");
else if (len < 10 ||len == 10 && strcmp(a,"2147483647")<=0)
printf ("int\n");
else if (len < 19 ||len == 19 && strcmp(a,"9223372036854775807")<=0)
printf ("long\n");
else
printf ("BigInteger\n");
return 0;
}