求大佬看看呀,改了两遍都八十,但是WA点不一样

P1307 [NOIP2011 普及组] 数字反转

sygzzyr @ 2019-07-03 17:49:08

include<iostream>

include<cstring>

using namespace std; char c[1000000000]; int main() {

int i,l;
cin>>c;
l=strlen(c)-1;
if(c[0]=='-')
{
    cout<<"-";
    if(c[l]=='0')
    {
        for(i=(l-1);i>0;i--)
        {
            if((c[i]==c[i+1])&&(c[i+1]=='0')) continue;
            else cout<<c[i];

        }  
    }
    else{
        for(i=l;i>0;i--)
        cout<<c[i];
    }
} 
else
{
    if(c[l]=='0')
    {
        for(i=(l-1);i>=0;i--)
        {
            if((c[i]==c[i+1])&&(c[i+1]=='0')) continue;
            else cout<<c[i];

        }  
    }
    else{
        for(i=l;i>=0;i--)
        cout<<c[i];
    }
}
return 0;

}


by 赫敏·东方延绪 @ 2019-07-03 18:25:48

https://www.luogu.org/recordnew/show/14501242


by cywd123 @ 2019-07-03 18:30:15

用你的代码试试 1008600 然后你就会发现问题

附我的代码

include<bits/stdc++.h>

using namespace std;

int main() {

long long n,t=0;bool f=0;

cin>>n;

if(n<0)f=1;n=abs(n);

while(n>0){ t+=n%10;t*=10;
n/=10; }

if(f==1)cout<<"-";

cout<<t/10;

return 0;

}


by cywd123 @ 2019-07-03 18:31:04

其实没必要用字符串或字符数组,用简单的数学计算就行


by sygzzyr @ 2019-07-03 18:32:55

@赫敏·东方延绪 大佬,您代码呢?


by sygzzyr @ 2019-07-03 18:33:14

@cywd123 好的我试试


by sygzzyr @ 2019-07-03 18:36:48

@cywd123 那么为什么1008600会出现问题呢?10086是没有问题的,这是为啥?


by cywd123 @ 2019-07-03 19:42:53


by 赫敏·东方延绪 @ 2019-07-03 20:12:52

@sygzzyr 我不太记得我以前的思路了,我再做一遍


by 赫敏·东方延绪 @ 2019-07-03 20:20:43

看看自己以前写的代码,觉得好啰嗦?


by 赫敏·东方延绪 @ 2019-07-03 20:29:07

唉我的AC率,怪我用手机打代码


上一页 | 下一页