解题思路:就是接受一行字符,然后判断变量类型,再求和除以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代码都可以实现!