2018年广东工业大学文远知行杯新生程序设计竞赛 1004 明日会吹明日的风β
Problem Description
In the world line 1.048596%
“為了幫助笨蛋梓川利用程序來解決青春期癥候群的問題,我覺得有必要你給你普及一下C語言的內(nèi)存知識?!?br />
今天的雙葉理央也依然在理科實驗室用燒杯煮咖啡。
“我已經(jīng)幾年沒有用過這個東西,還被人可憐的說是原始人了哦?!辫鞔▎D太看著眼前的電腦,雖然知道基本用法,但止步于上網(wǎng)查找資料。
“還是從基本的開始說起吧。”雙葉理央把C++ Prime Plus遞給梓川咲太,“從這一頁開始念?!?br />
“眾所周知......在常用的基本變量類型有6種,對于每一種基本變量類型中:
int占用4個字節(jié);
bool占用1個字節(jié),
long long占用8個字節(jié),
double占用8個字節(jié),
char占用1個字節(jié),
float占用4個字節(jié)?!?br />
這是哪個世界線的咒語嗎?梓川咲太想不明白。
“計算機中各種存儲容量的單位都是用字節(jié)(Byte簡為B)來表示,此外還有KB(千字節(jié))、MB(兆字節(jié))、GB(千兆字節(jié))和TB(太字節(jié)),他們的關(guān)系是:
1KB=1024 Bytes=2的10次方 Bytes
1MB=1024KB=2的20次方 Bytes
1GB=1024MB=2的30次方 Bytes
1TB=1024GB=2的40次方 Bytes......”
梓川咲太的腦容量是多少KB呢?他本人也想不懂,但肯定不是用TB來衡量的。
“好了基礎(chǔ)知識講解完畢,你去寫一個程序,給你n個這六種類型的變量,求出這些變量理論上需要使用多少KB(千字節(jié))的內(nèi)存,記得向上取整?!?br />
說完雙葉理央就離開了理科實驗室,留下對著電腦干瞪眼的梓川咲太。
因為古賀朋繪的緣故,這個場景已經(jīng)經(jīng)歷了三四遍,但梓川咲太依舊一籌莫展,也許再經(jīng)歷三四百遍也無濟于事吧。
真的是這樣嗎?眼前的電腦突然接收了一份郵件,里面是雙葉理央要求梓川咲太編寫的程序。
?
?
Input
第一行一個整數(shù)T,代表有T組樣例。
對于每組樣例:
第一行n標識輸入有n行 (n<=100000)
接下來n行如上述所示。
輸入保證:
1:每一行只有一個標識
2:輸入的基本格式為:
<變量類型> <變量名>;
3:一行只有一個類型
4:變量名的長度不超過10,且對于每組樣例,輸入的n個變量名均不同
例如
存在:int a;
而不存在:int a,b;
5:n的和不超過200000
?
?
Output
輸出用了多少KB(千字節(jié))內(nèi)存(向上取整)
?
?
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\n",ans); } return 0; }?
轉(zhuǎn)載于:https://www.cnblogs.com/Romantic-Chopin/p/10253021.html
總結(jié)
以上是生活随笔為你收集整理的2018年广东工业大学文远知行杯新生程序设计竞赛 1004 明日会吹明日的风β的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于无线的Idle Timeout和Se
- 下一篇: Shell-8--数值运算及处理