12.4 你的脑容量

你的脑容量

Description

int占用4个字节,bool占用1个字节,long long占用88个字节,double占用8个字节,char占用1个字节,float占用4个字节。
这是哪个世界线的咒语吗?计算机中各种存储容量的单位都是用字节(Byte简为BB)来表示,此外还有KB(千字节)、MB(兆字节)、GB(千兆字节)和TB(太字节),他们的关系是
在这里插入图片描述
请你写一个程序,求n个这六种类型的变量,求出这些变量理论上需要使用多少KB(千字节)的内存,答案向上取整。

Input

第一行一个整数T,代表有T组样例
对于每组样例第一行n标识输入有n行 (n<=100000)接下来n行如上述所示
输入保证
1:每一行只有一个类型名和变量名存在:inta;而不存在:inta,b
2:输入的基本格式为:<变量类型> <变量名>
3:n的和不超过200000

Output

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

Sample Input 1

1
1

int a

Sample Output 1
1


WA了五次的水题
因为我循环体很乱
导致emmmm
先贴上代码,一会看完书以后过来总结

#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
    int T,n;
    double i,j;
    char x;
    scanf("%d",&T);
    while(T--)
    {
        int sum=0;
        scanf("%d",&n);
        while(n--)
        {
            char a[10];
            scanf("%s",&a);
            getchar();
            x=a[0];
            gets(a);
            if(x=='i'||x=='f') sum+=4;
            else if(x=='b'||x=='c') sum+=1;
            else if(x=='l'||x=='d') sum+=8;
            i=sum%1024;
            j=sum/1024;
        }
        if(i!=0) printf("%.0lf\n",j+1);
        else printf("%.0lf\n",j);
    }
    return 0;
}

总结

像这样的题。T组数据鸭,每组数据n组数鸭。。。
通通用这个类型:

scanf("%d",&T);
while(T--)

然后注意这个题,输入的是每组T的结果,
所以给sum=0,应该放在

scanf("%d",&n);

前边。


留一个尾巴:看竖式乘法和分治乘法。over

猜你喜欢

转载自blog.csdn.net/qq_42906486/article/details/84798984