蒟蒻求助,为什么输入超过18位后一直RE...
查看原帖
蒟蒻求助,为什么输入超过18位后一直RE...
456967
Major_s楼主2021/2/5 14:12

CODE:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string str;
    getline(cin,str);
    int cd1 = str.length();
    int i;
    string a;
    for(i = 0;str[i]>='0'&&str[i]<='9'&&str[i]!='\0';i++)
    {
        a[i] = str[i];
    }
    printf("%c",str[20]);
    a[i] = '\0';
    int o = 0;
    printf("%d%d",cd1,i);
    if(i>=cd1)
    {
        int j = str.length();
        for(int f = j-1;f>=0;f--)
        {
            if(o==0)
            {
                if(str[f]!='0')
                    o = 1;
            }
            if(o==1)
                printf("%c",str[f]);
        }

        return 0;
    }
    int fact = 0;
    for(int n = i-1;n>=0;n--)
    {
        if(fact == 0)
        {
            if(a[n]!='0')
                fact = 1;
        }
        if(fact==1)
        {
            printf("%c",a[n]);
        }
    }
    if(str[i]=='%')
    {
        printf("%c",str[i]);
        return 0;
    }
    printf("%c",str[i]);
    int t = 0;
    string b;
    for(int s = i+1;str[s]!='\0';s++,t++)
        b[t] = str[s];
    b[t] = '\0';
    fact = 0;
    string h;
    int u = 0;
    for(int g = t-1;g>=0;g--)
    {
        if(fact==0)
        {
            if(b[g]!='0')
                fact =1;
        }
        if(fact ==1)
        {
            h[u] = b[g];
            u++;
        }

    }
    h[u]='\0';
    fact = 0;
    for(int l = u-1;l>=0;l--)
    {
        if(fact ==0)
        {
            if(h[l]!='0')
                fact = 1;
        }
        if(fact==1)
        {
            h[l+1]='\0';
            break;
        }
    }
    for(int y = 0;h[y]!='\0';y++)
        printf("%c",h[y]);
    return 0;
}








2021/2/5 14:12
加载中...