跪求5.7点的数据...一个wa,一个tle,写了两天了orz

P1553 数字反转(升级版)

@[Rlxzmdd](/space/show?uid=108297) 请发出您的代码
by 斗神·君莫笑 @ 2018-07-18 17:25:17


@[斗神·君莫笑](/space/show?uid=49644) ``` int main(){ char num[21],start[10],end[10]; int s=0,aa=0,bb=0; scanf("%s",num); for(int i = 0;;i++){ if(num[i] == 46 || num[i] == '/'){ s = i; continue; } if(num[i] == '%'){ s = i; break; } if(num[i] == '\0'){ break; } if(s == 0){ start[i] = num[i];aa++; }else{ end[i-s-1] = num[i];bb++; } } int temp=0,zero=0; for(int i=aa-1;i>=0;i--){ if(temp==0){ if(start[i] != '0'){ temp=1; }else{ zero++; if(zero == aa){ printf("0"); } continue; } } printf("%c",start[i]); } if(s!=0){ printf("%c",num[s]); if(num[s]!='%'){ temp=0; int zero = 0; for(int i=bb-1;i>=0;i--){ //思路,00060006,输出60006 // 01234567 //设置temp,记录0的位置 //temp = 6,当 i < temp,继续寻找0,如果0出现,temp = i+1,i=temp; if(end[i] == 48){ zero++; } if(zero == bb){ printf("0"); } if(temp == 0){ if(end[i] == '0'){ temp = i; continue; }else{ printf("%c",end[i]); } }else{ if(temp <= i){ //输出我要输出数据 printf("%c",end[i]); if(temp == i){ //输出完的处理 temp = 0; } continue; } if(end[i] != '0'){ //意味我这里要输出之前的0 int a = i; i = temp+1; temp = a; continue; } } } } } } ```
by Rlxzmdd @ 2018-07-18 17:49:34


|