90分求助!!!
查看原帖
90分求助!!!
1610817
Tangliwei楼主2024/12/8 18:03
#include <iostream>
#include <string>
#include <map>

using namespace std;

int main() {
    string s;
    cin >> s;
    string number, unit1, unit2;
    int i = 0;
    while (i < s.size()) {
        if (s[i] == '=') {
            break;
        }
        if (s[i] >= '0' && s[i] <= '9') {
            number.push_back(s[i]);
        }
        if (s[i] >= 'A' && s[i] <= 'Z') {
            unit1.push_back(s[i]);
        }
        i++;
    }
    i++; // 跳过等号
    while (i < s.size()) {
        if (s[i] >= 'A' && s[i] <= 'Z') {
            unit2.push_back(s[i]);
        }
        i++;
    }
    float num = stof(number);
    map<string, float> mp;
    mp["GB"] = 1.0 * 1024 * 1024 * 1024;
    mp["MB"] = 1.0 * 1024 * 1024;
    mp["KB"] = 1.0 * 1024;
    mp["B"] = 1.0;
    if (unit1 == unit2) {
        cout << 1.0 << endl;
    } else {
        float f = mp[unit1] * num;
        float ff = f / mp[unit2];
        cout.precision(6); // 设置输出精度
        cout << fixed << ff << endl; // 使用 fixed 来确保输出小数点
    }
    
    return 0;
}
2024/12/8 18:03
加载中...