#include<iostream>
using namespace std;
char a[100];
int i=0,j;
void fac(int n){
if(n<0){ //若输入数字为负数
a[i++]='-'; //现将负号放入输入中
n=-n; //数字变为正数
fac(n); //再调用整数转化为数组的函数
return ; //调用结束后函数结束,结果已经保存在了数组中
}
else if(n>=0&&n<=9){
a[i++]=n+'0'; //如果数字为个位数,直接将该数字放进去就行了
return ; //函数结束
}
else
a[i++]=n%10+'0'; //否则将该数组逆序放入该数组中 这里+'0'是为了将整型转化为字符型(要是字符型转化为整型需要 -'0')
fac(n/10); //递归调用该函数
return ;
}
int main()
{
int n;
int t;
cout<<"请输入一个整数:"<<endl;
cin>>n;
fac(n);
a[i]='\0'; //由于数组内的数是逆序放入的,要进行逆序
if(n>0){ //分情况当该数字大于0时候
for(i=0,j=strlen(a)-1;i<j;i++,j--){
t=a[i];
a[i]=a[j];
a[j]=t;
}
cout<<a<<endl;
}
if(n<0) //当该数字小于0时候
{
for(i=1,j=strlen(a)-1;i<j;i++,j--){
t=a[i];
a[i]=a[j];
a[j]=t;
}
cout<<a<<endl; //排序结束,输出该字符串
}
return 0;
}