简(bai)单(chi)做法

P1307 [NOIP2011 普及组] 数字反转

xumingrui @ 2017-07-29 20:21:12

就是一位一位取出来,直接输出

#include<iostream>
using namespace std;
int main(){
    int n,a;
    cin>>n;
    if(n==0) cout<<n<<endl;// 等于零直接输出 
    else{
        if(n>0){
            while(n%10==0){/* 防止末尾有零反转到开头,

先把末尾的零去掉 */

                n/=10;
            }
            while(n>=1){ // 一位一位输出 
                a=n%10;// %10求出最低位,最先输出
                cout<<a;
                n=n/10;/*/10去掉已经反转的最低位,

进行下一个循环 */

            }    
        }
        else{ 
            cout<<"-";//小于0先输出负号 
            n=-n;//取绝对值,操作同正数 
            while(n%10==0){
                n/=10;
            }
            while(n>=1){
                a=n%10;
                cout<<a;
                n=n/10;    
            }
        }
    }
    return 0;
}

by 梁天畅 @ 2017-07-31 16:34:26

太烦了,你看我的

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    int s=0;
    while(n){
        s=s*10+n%10;
        n/=10;
    }
    cout<<s<<endl;
    return 0;
}

by Powill @ 2017-08-03 14:24:04

我的哪里不对,怎么只有20分

#include<cstdio>
using namespace std;
int main()
{
    int m,n,a,b,c;
    scanf("%d",&m);
    a=m%100%10;
    b=(m%100-a)/10;
    c=(m-a-b)/100;
    n=a*100+b*10+c;
    printf("%d\n",n);
    return 0;
}

by puyifan @ 2017-08-03 23:31:46

@ 梁天畅 我同意。


|