b - 小學數學
題目描述:
今天的電腦課,老師給大家普及了一些計算機知識。
硬碟製造商有不同的容量衡量標準。
通常製造商認為1「kilo」等於1000,但作業系統會認為是1024。
因此,當你購買了乙個100mb的硬碟,電腦卻只顯示大約有95mb,這缺失了大約5mb。
對於硬碟的大小,有多種單位描述。
它們分別是byte, kilobyte, megabyte, gigabyte, terabyte, petabyte, exabyte, zetabyte 和yottabyte。
每乙個都相當於前乙個的 1「kilo」倍。 例如,1 gigabyte 就是 1 「kilo」 megabytes.
給定製造商所代表的硬碟的大小,你決定試著計算「缺失部分」的百分比。
input
第一行給定t,表示有t組資料。
每組資料形如:數字[單位] ,其中"數字"在範圍 [1, 1000]內 ,
同時"單位"為以下單位之一:「b」, 「kb」, 「mb」, 「gb」, 「tb」, 「pb」, 「eb」, 「zb」, 「yb」 ,
單位大小是遞增的。
output2
100[mb]
1[b]
sample output
case #1: 4.63%
case #2: 0.00%
解題思路:
先來看下100[mb]怎麼得到4.63%這個答案的:
(100x1024x1024-100x1000x1000)/ (100x1024x1024) = 1 - (1000 / 1024)^2 = 0.0463
根據「b」, 「kb」, 「mb」, 「gb」, 「tb」, 「pb」, 「eb」, 「zb」, 「yb」 的順序,mb第三個,所以是2次方,若是b,就是0次方,若是kb就是1次方…以此類推。不難發現只要看給單位是什麼就能判斷該輸出什麼答案,這不就個簡單的 if… else…的題嗎?
下面是我的**:
#include
using
namespace std;
int n;
int x;
double j;
double t=
1000.0
/1024
;string s;
intmain()
case
('k'):
case
('m'):
case
('g'):
case
('t'):
case
('p'):
case
('e'):
case
('z'):
case
('y'):
} cout<<
"case #"
<": "
;printf
("%.2f"
,j);
cout<<
"%"<}return0;
}
用 if 也可以,我這裡用switch順便鞏固了switch…case的用法。最後,我想說的是,一些題目看起來很難,其實不過是紙老虎,或許只要你冷靜的看題讀題就會發現這不過是送分題 。 python第三週小測
1.讀取乙個檔案,顯示除了井號 開頭的行意外的所有行 coding utf 8 created on tue may 28 09 37 08 2019 author omega sendoh 開啟檔案 f open install sh r 讀取檔案的所有行,以列表形式儲存,每行為列表中的乙個字串元...
pyhton第四周小測
1.記錄日誌裝飾器 建立乙個裝飾器,功能實現函式執行時自動產生日誌記錄。日誌格式如下 程式執行時間 主機短名 程式名稱 函式 s 執行結果為 s 產生的日誌檔案並不直接顯示在螢幕上,而是儲存在 file.log 檔案中 import time import os import sys def add...
第二週小測的題解
include using namespace std intmain cout include using namespace std intmain cout return0 結束 include include using namespace std const int m 20005 200...