- 问答
- 2020-12-12 09:51:07 @
RT
我们知道计算机的大小单位有 B, KB, MB 等,现在请你编写一个计算器进行大小单位换算。
提示,11 GB = 2^{10}2
10
MB = 2^{20}2
20
KB = 2^{30}2
30
B。
输入一个字符串,由一个 0 到 1023 之间的整数,一个单位名称(大写字母),一个等于号和问号,以及第二个单位名称。
单位只有可能是 GB,MB,KB,B 之间的一个。
输出格式
输出一个数字,精确到小数点后 6 位。
输入输出样例
输入 #1
128MB=?GB
输出 #1
0.125000
输入 #2
64MB=?KB
输出 #2
65536.000000
1 条评论
-
## (QWER1234ASDF123321) LV 8 @ 2020-12-16 20:29:15
#include<bits/stdc++.h> using namespace std; int main() { string s; int i = 0; double sum = 0; getline(cin, s); while(s[i] >= '0' && s[i] <= '9') { sum = sum * 10 + s[i] - '0'; i++; } if(s[i] == 'M') sum *= pow(2, 20); else if(s[i] == 'G') sum *= pow(2, 30); else if(s[i] == 'K') sum *= pow(2, 10); if(s[s.length() - 2] == 'G') sum *= pow(2, -30); else if(s[s.length() - 2] == 'M') sum *= pow(2, -20); else if(s[s.length() - 2] == 'K') sum *= pow(2, -10); printf("%.6lf", sum); return 0; }
- 1