你的脑容量

你的脑容量

Description

int占用4个字节,bool占用1个字节,long long占用88个字节,double占用8个字节,char占用1个字节,float占用4个字节。

这是哪个世界线的咒语吗?

计算机中各种存储容量的单位都是用字节(Byte简为B)来表示,此外还有KB(千字节)、MB(兆字节)、GB(千兆字节)和TB(太字节),他们的关系是

1KB=1024 Bytes=2^10 Byte

1MB=1024KB=2^20 Byte

1GB=1024MB=2^30 Byte

1TB=1024GB=2^40 Bytes…

请你写一个程序,求n个这六种类型的变量,求出这些变量理论上需要使用多少KB(千字节)的内存,答案向上取整。

Input

第一行一个整数T,代表有T组样例

对于每组样例第一行n标识输入有n行 (n<=100000)(n<=100000)
接下来n行如上述所示

输入保证1:每一行只有一个类型名和变量名

存在:int a;而不存在:int a,b
2:输入的基本格式为:<变量类型> <变量名>

3:n的和不超过200000

Output

输出用了多少KB(千字节)内存(向上取整)

Sample Input 1

1
1
int a
Sample Output 1

1


通过判断类型首字母来判断所占空间

#include<stdio.h>
int main()
{
    int T;
    scanf("%d",&T);
    while(T--){
        int n,l=0;
        scanf("%d",&n);
        getchar();   //需要吸收\n,不然\n会直接到下面进入数组a中
        while(n--){
            char a[100];
            gets(a);
            if(a[0]=='i'){
                l+=4;
            }
            else if(a[0]=='b'){
                l+=1;
            }
            else if(a[0]=='l'){
                l+=8;
            }
            else if(a[0]=='d'){
                l+=8;
            }
            else if(a[0]=='f'){
                l+=4;
            }
            else if(a[0]=='c'){
                l+=1;
            }
        }
        if(l%1024==0){
            printf("%d\n",l/1024);
        }
        else{
            printf("%d\n",l/1024+1);
        }
    }
    return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值