题目传送门
解题思路:就是接受一行字符,然后判断变量类型,再求和除以1024即可。
(int占用4个字节,bool占用1个字节,long long占用8个字节,double占用8个字节,char占用1个字节,float占用4个字节。)
我们发现每个字母的首字母都不一样,因此我们可以根据这个区别来进行判断,增加几个字节。
#include<stdio.h>
#include<math.h>
int main()
{
char str[100];
int T,n;
scanf("%d",&T);
while(T--)
{
int sum = 0;
scanf("%d",&n);
getchar();
for(int i = 0;i < n;i++){
gets(str);
if (str[0] == 'i')
sum += 4;
else if (str[0] == 'f')
sum += 4;
else if (str[0] == 'd')
sum += 8;
else if (str[0] == 'c')
sum += 1;
else if (str[0] == 'b')
sum += 1;
else if (str[0] == 'l')
sum += 8;
//printf("%d\n", sum);
}
printf("%d\n",(int)ceil(sum/1024.0));
//printf("%.0f",ceil(sum/1024.0));
}
return 0;
}
介绍一下,ceil函数:
ceil(double x)
功 能: 返回大于或者等于指定表达式的最小整数
头文件:math.h
返回数据类型:double
以上那两行ceil代码都可以实现!