Description
本题要求实现一个求整数的逆序数的简单函数。(注意:逆序后去掉前导0)
函数接口定义:
int reverse( int number );
其中函数reverse须返回用户传入的整型number的逆序数。
Input
一行一个整数n。
Output
一个整数表示答案。
Sample Input 1
-12340
Sample Output 1
-4321
如果按照题目要求按照数字进行处理:则要取出每一位上的数字再进行倒序排列
代码实现如下:(以下为C语言版本)
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
int a[100000];
int i=0;
int y=n;
if(y<0)y=-y;
while(y>0){
int b = y % 10;
a[i]=b;
i++;
y/=10;
}
int t;
for(t=0;t<i;t++){
int temp = a[t];
a[t] = a[i-t];
a[i-t] = temp;
}
if(n<0){
printf("-");
}
if(a[0]!=0)
for(int m=0;m<i;m++)
printf("%d",a[m]);
if(a[0]==0)
for(int m=1;m<i;m++)
printf("%d",a[m]);
return 0;
}
若把它看作字符串,可以做一个拆分选定倒序输出范围进行逆序输出(有关于特殊条件的处理比如‘-’可以用flag作为标记在输出字符前提前输出‘-’,以及一些特殊情况可以根据报错进行调整和修改)
以下是C++版本的代码:
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main() {
int flag = 0;
string a;
cin>>a;
if(a[0]=='-') {
flag = 1;
}
int n = a.length();
int i;
for(i = n-1;i>=flag;i--) {
if(a[i]!='0')break;
}
if(flag==1)cout<<'-';
if(a=="0")cout<<0;
for(int j = i;j>=flag;j--) {
cout<<a[j];
}
cout<<endl;
return 0;
}
标签:输出,函数,int,整数,flag,include,序数
From: https://blog.csdn.net/2301_80309996/article/details/144158577