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