解题思路:微信截图_20230329133423.png
注意事项:在本地跑出来的结果和测评的结果数据不一样,此题py数据处理有问题

参考代码:

t=int(input())

byte=0

for _ in range(t):

    s=input()

    if s.startswith('int '):

        cnt=s.count(',')

        if cnt==0:

            byte+=4

        else:

            byte+=(cnt+1)*4

    elif s.startswith('long '):

        cnt=s.count(',')

        if cnt==0:

            byte+=8

        else:

            byte+=(cnt+1)*8

    elif s.startswith('String '):

        s=s.replace(';','')

        b=s.replace('String ','')

        c=list(b.split(','))

        for x in c:

            a=str(x)

            idx1=a.find('=')+1

            idx2=len(a)-1

            byte+=idx2-idx1-1

    elif s.startswith('int[] '):

        s=s.replace(';','')

        b=s.replace('int[] ','')

        c=list(b.split(','))

        for x in c:

            a=str(x)

            idx1=a.find('[')+1

            idx2=a.find(']')

            d=x[idx1:idx2]

            num=int(''.join(d))

            byte+=num*4

    elif s.startswith('long[] '):

        s=s.replace(';','')

        b=s.replace('long[] ','')

        c=list(b.split(','))

        for x in c:

            a=str(x)

            idx1=a.find('[')+1

            idx2=a.find(']')

            d=x[idx1:idx2]

            num=int(''.join(d))

            byte+=num*8

gb=byte//1024**3

byte-=1024**3*gb

mb=byte//1024**2

byte-=1024**2*mb

kb=byte//1024

byte-=1024*kb

z=''

if gb>0:

    z+=f'{gb}GB'

if mb>0:

    z+=f'{mb}MB'

if kb>0:

    z+=f'{kb}KB'

if byte>0:

    z+=f'{byte}B'

print(z)


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

yangly 9月前 回复TA
我C++也是AC官网,在这过不了