zoukankan      html  css  js  c++  java
  • 2018年广东工业大学文远知行杯新生程序设计竞赛 1004 明日会吹明日的风β

    Problem Description

    In the world line 1.048596%

    “为了帮助笨蛋梓川利用程序来解决青春期症候群的问题,我觉得有必要你给你普及一下C语言的内存知识。”

    今天的双叶理央也依然在理科实验室用烧杯煮咖啡。

    “我已经几年没有用过这个东西,还被人可怜的说是原始人了哦。”梓川咲太看着眼前的电脑,虽然知道基本用法,但止步于上网查找资料。

    “还是从基本的开始说起吧。”双叶理央把C++ Prime Plus递给梓川咲太,“从这一页开始念。”

    “众所周知......在常用的基本变量类型有6种,对于每一种基本变量类型中:

    int占用4个字节;

    bool占用1个字节,

    long long占用8个字节,

    double占用8个字节,

    char占用1个字节,

    float占用4个字节。”

    这是哪个世界线的咒语吗?梓川咲太想不明白。

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

    1KB=1024 Bytes=2的10次方 Bytes

    1MB=1024KB=2的20次方 Bytes

    1GB=1024MB=2的30次方 Bytes

    1TB=1024GB=2的40次方 Bytes......”

    梓川咲太的脑容量是多少KB呢?他本人也想不懂,但肯定不是用TB来衡量的。

    “好了基础知识讲解完毕,你去写一个程序,给你n个这六种类型的变量,求出这些变量理论上需要使用多少KB(千字节)的内存,记得向上取整。”

    说完双叶理央就离开了理科实验室,留下对着电脑干瞪眼的梓川咲太。

    因为古贺朋绘的缘故,这个场景已经经历了三四遍,但梓川咲太依旧一筹莫展,也许再经历三四百遍也无济于事吧。

    真的是这样吗?眼前的电脑突然接收了一份邮件,里面是双叶理央要求梓川咲太编写的程序。

    Input

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

    对于每组样例:

    第一行n标识输入有n行 (n<=100000)

    接下来n行如上述所示。

    输入保证:

    1:每一行只有一个标识

    2:输入的基本格式为:

    <变量类型> <变量名>;

    3:一行只有一个类型

    4:变量名的长度不超过10,且对于每组样例,输入的n个变量名均不同

    例如

    存在:int a;

    而不存在:int a,b;

    5:n的和不超过200000

    Output

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

    Sample Input

    
     

    1 1 int a;

    Sample Output

    
     

    1

    #include<iostream>
    #include<cstring>
    #include<algorithm>
    #include<cmath> 
    using namespace std;
    
    char a[100],b[100],c[100];
    
    int main()
    {
        int n,m,j,k,i,T;
        cin>>T;
        while (T--)
        {
            cin>>n;
            int sum=0;
            getchar();
            while (n--)
            {
                scanf("%s %s",a,b);
                if (strcmp(a,"int")==0)
                sum+=4;
                else if (strcmp(a,"bool")==0)
                sum+=1;    
                else if (strcmp(a,"long")==0)
                {
                    sum+=8;
                    scanf("%s",c);
                }
                
                else if (strcmp(a,"double")==0)
                sum+=8;
                else if (strcmp(a,"char")==0)
                sum+=1;
                else if (strcmp(a,"float")==0)
                sum+=4;
            }    
            int ans = ceil(sum*1.0/1024);
            printf("%d
    ",ans); 
        }    
        
        return  0;
    }
    
  • 相关阅读:
    1025. 除数博弈
    剑指 Offer 12. 矩阵中的路径
    64. 最小路径和
    剑指 Offer 07. 重建二叉树-7月22日
    为人工智能、机器学习和深度学习做好准备的数据中心实践
    在云应用程序中加强隐私保护的9种方法
    迎接物联网时代 区块链大有可为
    Science 好文:强化学习之后,机器人学习瓶颈如何突破?
    学会这5招,让Linux排障更简单
    云游戏:5G时代的王牌应用
  • 原文地址:https://www.cnblogs.com/Romantic-Chopin/p/12451244.html
Copyright © 2011-2022 走看看