求助
查看原帖
求助
762928
Runtime_Error754楼主2023/8/30 10:25

输入一个绝对值小于一亿亿(101610^{16})的数,输出那个数的读作,蒟蒻想了半天也没有想明白零怎么处理,求助,这是蒟蒻只能输出没有零的数的读作的代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
string f(int a)
{
    string ans[25]={"零","一","二","三","四","五","六","七","八","九"};
    return ans[a];
}
int main()
{
    string n;//n在(-10^16)+1到10^16-1之间,可以用ll,但懒得用
    cin>>n;
    for(int i=0;i<n.size();i++)
    {
        int x=n[i]-48;
        if(x)
        {
            string ls2[15]={"","十","百","千"};
            cout<<f(x);
            cout<<ls2[(n.size()-i-1)%4];
        }
        if((n.size()-i-1)>=4&&(n.size()-i-1)%4==0&&(n.size()-i-1)/4%2==1)cout<<"万";
        if((n.size()-i-1)>=8&&(n.size()-i-1)%8==0) cout<<"亿";
    }
}
2023/8/30 10:25
加载中...