20分求解

P1307 [NOIP2011 普及组] 数字反转

tbf123456 @ 2024-08-04 19:43:10

20分求解

#include<bits/stdc++.h>
using namespace std;
string n,s; 
int main(){
    cin>>n;
    long long len=n.length();
    for(long long i=len-1; i>=1; i--){
        s[i]=n[len-i];
    }
    if(n[0]=='-'){
        cout<<'-';
        for(long long i=1; i<len; i++){
            cout<<s[i];
            return 0;
        }
    }
    for(long long i=1; i<len; i++){
        cout<<s[i];
    }
    cout<<n[0];
    return 0;
}

by wuzhitong @ 2024-08-04 19:50:40

求关

#include<bits/stdc++.h>
using namespace std;
string s1,s2;
int main()
{
    cin>>s1;
    if(s1=="0")
    {
      cout<<0;
      return 0;
    }
    int n=s1.size()-1;
    while(s1[n]=='0')if(s1[n]=='0' && s1!="0")n-=1;
    for(int i=n;i>=0;i--)s2+=s1[i];
    if(s2[n]=='-')
    {
      cout<<'-';
      n--;
    }
    for(int i=0;i<=n;i++)cout<<s2[i];
    return 0;
}

by HuangSiHan3116 @ 2024-08-07 21:24:08

@tbf123456

#include<bits/stdc++.h>
using namespace std;
int main(){
    long long int n,sum=0;
    cin>>n;
    while(abs(n)>0){//因为有可能是负数。
            //abs(n)=将负数变成正数
            //举个例子,设n等于321
        sum*=10;//0/10/120
        sum+=n%10;//1/12/123
        n/=10;//32/3/0
    }
    printf("%lld",sum);//输出反转后的数字。
    return 0;
}

AC 求关


|