0
已解决
#include<bits/stdc++.h>
using namespace std;
string a,hz[5]={"wan","qian","bai","shi",""};
int l,f;
int main()
{
cin>>a;
l=a.size();
if(a=="0")cout<<0;
if(a=="100000")cout<<"1shiwan";
for(int i=0;i<l;i++)
{
if(a[i]!='0')
{
if(f==1)
{
cout<<0;
f=0;
}
cout<<a[i]<<hz[5-l+i];
}
else f=1;
}
}
为什么95分?
0
0
0
大写数字变换的几种情况:
1.给每一位加后缀。
2.如果中间有0,那么不加后缀。
3.如果末尾有0,那么不输出0。
4.中间有多个连续的0,那么只输出1个0。
5.0输出0。
解题思路:
1.遍历字符串s。
2.如果当前的s[i]是0,那么用flag标识出现过的0。
3.如果当前的s[i]是非0的,那么先根据flag判断是否要输出0,再处理当前数字。
核心(定义和框架自己写):
for(int i=0;i<?;i++){
if(s[i]=='?')
flag=?;
else{
if(?){
cout<<"0";
flag=false;
}
cout<<s[i]<<post[?];
}
}
0

