输入一个绝对值小于一亿亿(1016)的数,输出那个数的读作,蒟蒻想了半天也没有想明白零怎么处理,求助,这是蒟蒻只能输出没有零的数的读作的代码
#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<<"亿";
}
}