问题标题: 酷町堂:1147为什么90分?

0
0
已解决
高杨
高杨
资深守护
资深守护

代码:

 

#include<bits/stdc++.h>
using namespace std;
string b[5]={"wan","qian","bai","shi"};
int main()
{
    string a;
    cin>>a;
    int m=0;
    if(a.size()==1)cout<<a;
    else
    {
        if(a.size()==2)
        {
            cout<<a[0]<<b[3];
            if(a[1]=='0')
            {
                int jj=0;
            }
            else
            {
                cout<<a[1];
            }
        }
        if(a.size()==3)
        {
            cout<<a[0]<<b[2];
            if(a[1]=='0'&&a[2]=='0')
            {
                int jj=0;
            }
            else if(a[1]=='0')
            {
                cout<<a[1]<<a[2];
            }
            else
            {
                if(a[1]!='0'&&a[2]=='0')
                {
                    cout<<a[1]<<b[3];
                }
                if(a[1]!='0'&&a[2]!='0')
                {
                    cout<<a[1]<<b[3]<<a[2];
                }
            }
        }
        if(a.size()==4)
        {
            cout<<a[0]<<b[1];
            if(a[1]=='0'&&a[2]=='0'&&a[3]=='0')
            {
                int jj=0;
            }
            else if(a[1]=='0'&&a[2]=='0')
            {
                if(a[3]!='0')
                    cout<<a[1]<<a[3];
                else
                    cout<<a[1];
            }
            else if(a[1]=='0')
            {
                if(a[2]!='0'&&a[3]=='0')
                    cout<<a[1]<<a[2]<<b[3];
                else if(a[2]!='0'&&a[3]!='0')
                {
                    cout<<a[1]<<a[2]<<b[3]<<a[3];
                }
            }
            else
            {
                if(a[1]!='0'&&a[2]=='0'&&a[3]=='0')
                {
                    cout<<a[1]<<b[2];
                }
                else if(a[1]!='0'&&a[2]!='0'&&a[3]=='0')
                {
                    cout<<a[1]<<b[2]<<a[2]<<b[3];
                }
                else
                {
                    cout<<a[1]<<b[2]<<a[2]<<b[3]<<a[3];
                }
            }
        }
        if(a.size()==5)
        {
            cout<<a[0]<<b[0];
            if(a[1]=='0'&&a[2]=='0'&&a[3]=='0'&&a[4]=='0')
            {
                int jj=0;
            }
            else if(a[1]=='0'&&a[2]=='0'&&a[3]=='0')
            {
                cout<<a[1]<<a[4];
            }
            else if(a[1]=='0'&&a[2]=='0')
            {
                if(a[3]!='0'&&a[4]=='0')
                    cout<<a[1]<<a[3]<<b[2];
                else
                {
                    cout<<a[1]<<a[3]<<b[2]<<a[1]<<a[4];
                }
            }
            else if(a[1]=='0')
            {
                if(a[2]!='0'&&a[3]!='0'&&a[4]!='0')
                {
                    cout<<a[1]<<a[2]<<b[2]<<a[3]<<b[3]<<a[4]; 
                }
                else if(a[2]!='0'&&a[3]=='0'&&a[4]!='0')
                {
                    cout<<a[1]<<a[2]<<b[2]<<a[3]<<a[4];
                }
                else if(a[2]!='0'&&a[3]=='0'&&a[4]=='0')
                {
                    cout<<a[1]<<a[2]<<b[2];
                }
            }
            else 
            {
                if(a[1]!='0'&&a[2]=='0'&&a[3]=='0'&&a[4]=='0')
                {
                    cout<<a[1]<<b[1]; 
                }
                else if(a[1]!='0'&&a[2]!='0'&&a[3]=='0'&&a[4]=='0')
                {
                    cout<<a[1]<<b[1]<<a[2]<<b[2];
                }
                else if(a[1]!='0'&&a[2]!='0'&&a[3]!='0'&&a[4]=='0')
                {
                    cout<<a[1]<<b[1]<<a[2]<<b[2]<<a[3]<<b[3];
                }
                else if(a[1]!='0'&&a[2]!='0'&&a[3]!='0'&&a[4]!='0')
                {
                    cout<<a[1]<<b[1]<<a[2]<<b[2]<<a[3]<<b[3]<<a[4];
                }
                else if(a[1]!='0'&&a[2]=='0'&&a[3]=='0'&&a[4]!='0')
                {
                    cout<<a[1]<<b[1]<<a[2]<<a[4];
                }
            }
        }
        if(a.size()==6)
        {
            cout<<a[0]<<b[3];
            if(a[1]=='0'&&a[2]=='0'&&a[3]=='0'&&a[4]=='0'&&a[5]=='0')
            {
                cout<<b[0];
            }
            else if(a[1]=='0'&&a[2]=='0'&&a[3]=='0'&&a[4]=='0')
            {
                cout<<a[1]<<a[5];
            }
            else if(a[1]=='0'&&a[2]=='0'&&a[3]=='0')
            {
                if(a[4]!='0'&&a[5]=='0')
                    cout<<a[1]<<a[4]<<b[3];
                else
                {
                    cout<<a[1]<<a[4]<<b[3]<<a[5];
                }
            }
            else if(a[1]=='0'&&a[2]=='0')
            {
                if(a[3]!='0'&&a[4]!='0'&&a[5]!='0')
                {
                    cout<<a[1]<<a[3]<<b[1]<<a[4]<<b[2]<<a[5]; 
                }
                else if(a[3]!='0'&&a[4]=='0'&&a[5]!='0')
                {
                    cout<<a[1]<<a[3]<<b[1]<<a[4]<<a[5];
                }
                else if(a[3]!='0'&&a[4]=='0'&&a[5]=='0')
                {
                    cout<<a[1]<<a[3]<<b[1];
                }
            }
            else 
            {
                if(a[1]!='0'&&a[2]=='0'&&a[3]=='0'&&a[4]=='0'&&a[5]=='0')
                {
                    cout<<a[1]<<b[0]; 
                }
                else if(a[1]!='0'&&a[2]!='0'&&a[3]=='0'&&a[4]=='0'&&a[5]=='0')
                {
                    cout<<a[1]<<b[0]<<a[2]<<b[1];
                }
                else if(a[1]!='0'&&a[2]!='0'&&a[3]!='0'&&a[4]=='0'&&a[5]==0)
                {
                    cout<<a[1]<<b[0]<<a[2]<<b[1]<<a[3]<<b[2];
                }
                else if(a[1]!='0'&&a[2]!='0'&&a[3]!='0'&&a[4]!='0'&&a[5]==0)
                {
                    cout<<a[1]<<b[0]<<a[2]<<b[1]<<a[3]<<b[2]<<a[4]<<b[3];
                }
                else if(a[1]!='0'&&a[2]!='0'&&a[3]!='0'&&a[4]!='0'&&a[5]!=0)
                {
                    cout<<a[1]<<b[0]<<a[2]<<b[1]<<a[3]<<b[2]<<a[4]<<b[3]<<a[5];
                }
                else if(a[1]!='0'&&a[2]=='0'&&a[3]=='0'&&a[4]=='0'&&a[5]!=0)
                {
                    cout<<a[1]<<b[0]<<a[2]<<a[5];
                }
                else if(a[1]!='0'&&a[2]=='0'&&a[3]!='0'&&a[4]=='0'&&a[5]!=0)
                {
                    cout<<a[1]<<b[0]<<a[2]<<a[3]<<b[2]<<a[4]<<a[5];
                }
                else if(a[1]!='0'&&a[2]=='0'&&a[3]=='0'&&a[4]!='0'&&a[5]!=0)
                {
                    cout<<a[1]<<b[0]<<a[2]<<a[4]<<b[3]<<a[5];
                }
            }
        }
    }
    return 0;
}


0
已采纳
贾志骜
贾志骜
新手光能
新手光能

这是个周期问题,先判断0,或100000,这两个有些特殊,如果不是这两个数,则循环,代码如下

for(int i=0;i<l;i++)//l是长度
    {
        if(a[i]!='0')
        {
            if(f==自己想)
            {
                cout<<0;
                f=自己想;
            }
            cout<<a[i]<<hz[自己想,周期];  
        }
        else f=自己想;  

注意周期定义用string ,长度为5

贾志骜在2019-10-09 19:45:57追加了内容

不好意思啊,这不是周期,只是看着像啊,嘿嘿

0
0
江齐悦
江齐悦
高级光能
高级光能

核心(其他的自己写):

if(n == 0) cout<<0;

else if(n == 100000) cout<<"1shiwan";

else{

while(n){

i++;

a[i] = n%10;

n /= 10;

}

for(i = i;i >= 1;i--){

if(a[i] != 0){

if(flag == true){

cout<<0;

flag=false;

}

cout << a[i] << ch[i];

}

else flag = true;

}

}

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
我要回答