首页 > 其他 > 详细

ZSTUOJ平台刷题①:Problem 3531.--逆序数

时间:2021-05-16 22:12:16      阅读:18      评论:0      收藏:0      [点我收藏+]

3531: 逆序数

Time Limit: 1 Sec  Memory Limit: 64 MB
Submit: 3831  Solved: 2044

Description

输入一个任意整数(int型),输出其位数并逆序输出该数。

Input

输入一个任意整数(int型)

Output

输出其位数及逆序数

Sample Input

12345
-123
100

Sample Output

54321 5
-321 3
1  3

一般解答(不用考虑0处于非零数字之间位置想要保留的情况):
代码如下:
#include<bits/stdc++.h>
using namespace std;

int main(){
    int n;
    while(cin>>n){
        int sum=0;int b=n,c=n;
        while(n){
            int a=n%10;
            if(((n==b&&n<0)||b>0)&&a!=0) cout<<a;
            else if(b<0) cout<<-a;
            sum++; 
            n/=10;
        }
        cout<<" "<<sum<<endl;
    }
    
    return 0;
} 
优化解答(可以解决0处于非零数字之间的情况,将其保留下来):
#include<bits/stdc++.h>
using namespace std;

int main(){
    int n;
    while(cin>>n){
        int sum=-1;int b=n,c=n;
        while(n){
            int a=n%10;
            c/=10;
            while(!a&&c%10==0){
                a=n%10;
                n/=10;
                sum++;
            }
            if(((n==b&&n<0)||b>0)) cout<<a;
            else if(b<0) cout<<-a;
            if(n==b) sum+=2;
            else sum++;
            n/=10;
        }
        cout<<" "<<sum<<endl;
    }
    
    return 0;
} 

 

ZSTUOJ平台刷题①:Problem 3531.--逆序数

原文:https://www.cnblogs.com/Xuou7/p/14774397.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!