题解 | #人民币转换#

人民币转换

https://www.nowcoder.com/practice/00ffd656b9604d1998e966d555005a4b

#include <iostream>//和42学英语很像
#include <vector>
using namespace std;
vector<string> str{"壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
vector<string> str1{"拾", "贰拾", "叁拾", "肆拾", "伍拾", "陆拾", "柒拾", "捌拾", "玖拾"};
string myfunc1(string& s) {
    string sout;
    if(s[0]!='0'){
        sout += str[s[0] - '0' - 1];sout += "仟";
    }

    if (s[1] != '0') {
        sout += str[s[1] - '0' - 1];
        sout += "佰";
    }
    if (s[2] == '0') {
        if (s[3] != '0') {
            if(s[0]!='0' || s[1] != '0') sout += "零";
            sout += str[s[3] - '0' - 1];
        }
    } else {
        if(s[0]!='0' && s[1] == '0') sout += "零";
        sout += str1[s[2] - '0' - 1];
        if (s[3] != '0') {
            sout += str[s[3] - '0' - 1];
        }
    }
    return sout;
}
int main() {
    double a;
    cin >> a;
    // string s1;cin>>s1;
    // double a=stod(s1);
    int b = a * 1000;
    int bf = b % 100;bf/=10;
    b /= 100; //bf 百分位
    int sf = b % 10;
    b /= 10; //sf 十分位  现在b就是整数部分
    string s;
    s += "人民币";
    //整数部分
    string zs = to_string(b);
    int n = zs.size();
    if (n > 8) { //有亿位
        for(int i=0;i<(12-n);i++) {zs="0"+zs;}
        string s1=zs.substr(0,4),s2=zs.substr(4,4),s3=zs.substr(8,4);
        s+=myfunc1(s1);s+="亿";
        s+=myfunc1(s2);s+="万";
        s+=myfunc1(s3);s+="元";
    } else if (n <= 8 && n > 4) { //千万~万
        for(int i=0;i<(8-n);i++) {zs="0"+zs;}
        string s1=zs.substr(0,4),s2=zs.substr(4,4);
        s+=myfunc1(s1);s+="万";
        s+=myfunc1(s2);s+="元";
    }
    else{
        for(int i=0;i<(4-n);i++) {zs="0"+zs;}
        s+=myfunc1(zs);
        if((zs[0]-'0')||(zs[1]-'0')||(zs[2]-'0')||(zs[3]-'0'))s+="元";
    }
    // s += "元";
    //小数部分
    if (bf == 0 && sf == 0) s += "整";
    if (sf != 0) {
        s += str[sf - 1];
        s += "角";
        if (bf != 0) {
            s += str[bf - 1];
            s += "分";
        }
    }
    if (sf == 0 && bf != 0) {s += str[bf - 1];s += "分";}
    cout << s;
}

全部评论

相关推荐

点赞 评论 收藏
分享
ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
有工作后先养猫:太好了,是超时空战警,我们有救了😋
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务