Hard Disk Drive HDU - 4788
生活随笔
收集整理的這篇文章主要介紹了
Hard Disk Drive HDU - 4788
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Hard Disk Drive HDU - 4788
題意:
通常制造商認為1“kilo”等于1000,但操作系統會認為是1024。
因此,當你購買了一個100MB的硬盤,電腦卻只顯示大約有95MB,這缺失了大約5MB。
對于硬盤的大小,有多種單位描述。
它們分別是byte, kilobyte, megabyte, gigabyte, terabyte, petabyte, exabyte, zetabyte 和yottabyte。
每一個都相當于前一個的 1“kilo”倍。 例如,1 gigabyte 就是 1 “kilo” megabytes.
給定制造商所代表的硬盤的大小,你決定試著計算“缺失部分”的百分比。
題解:
題目很簡單,每一次損失是w = 1000/1024,B,KB,MB依次都是w的0次冪,1次冪,2次冪…
這題最難的地方在于最后輸出%,printf輸出的話,要輸出一個%,就是寫兩個%
我也才知道,一直wa。。
代碼:
#include <iostream> #include <string> #include <cstdio> #include <cstring> using namespace std; #define ll long long #define INF 0x3f3f3f3f int main(){ll t;cin>>t;ll cas=0;while(t--){string s;cin>>s;double w=1000.0/1024.0;int pos=s.find("[");int p=0;if(s[pos+1]=='Y'){p=8;}else if(s[pos+1]=='Z')p=7;else if(s[pos+1]=='E')p=6;else if(s[pos+1]=='P')p=5;else if(s[pos+1]=='T')p=4;else if(s[pos+1]=='G')p=3;else if(s[pos+1]=='M')p=2;else if(s[pos+1]=='K')p=1;else if(s[pos+1]=='B')p=0;double f=1.0;for(int i=1;i<=p;i++){f=f*w;}printf("Case #%lld: %.2lf%%\n",++cas,(1.0-f)*100.0);}return 0; }總結
以上是生活随笔為你收集整理的Hard Disk Drive HDU - 4788的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Python|生信]从Fasta文件出
- 下一篇: 熟苹果的功效与作用、禁忌和食用方法