#include<iostream.h>
#include<math.h>
//返回整数n的最高位
long head(long n)
{
if(abs(n)<10)
return abs(n);
else
return head(n/10);
}
//编写函数,以整数n为参数,将整数n中的0消去后作为函数值返回
long DelZero(long n)
{
if(n==0)
return 0;
else if(n%10==0)
return (DelZero(n/10));
else
return (10*DelZero(n/10)+n%10);
}
//编写函数,以整数n为参数,将整数n的最大数字作为函数值返回
long MaxNumber(long n)
{
long d;
n=abs(n);
d=n%10;
if(n<10)
return d;
else if(d>MaxNumber(n/10))
return d;
else
return (MaxNumber(n/10));
}
//编写函数,以整数n为参数,将n的首位去掉,例如:n=720,则变为20
long DelHead(long n)
{
bool sign;
//long temp;
if(abs(n)<10)
return 0;
else
{
sign=(n>=0);
n=abs(n);
if(sign==1)
return(10*DelHead(n/10)+n%10); //利用函数处理n/10,之后再加上个位数字
else
return(-(10*DelHead(n/10)+n%10));
}
}
//编写函数,以整数n为参数,将n中的数字从大到小排序。例如n=792,则变为972
long SortNumber(long n)
{
long d,temp;
bool sign;
if(abs(n)<=10)
return n;
else
{
sign=(n>=0);
n=abs(n);
d=n%10; //取个位
n=SortNumber(n/10);
if(d<=(n%10))
{
if(sign==1)
return(10*n+d);
else
return(-(10*n+d));
}
else
{
temp=d;
d=n%10;
n=10*(n/10)+temp;
if(sign==1)
return(10*SortNumber(n)+d);
else
return(-(10*SortNumber(n)+d));
}
}
}
void main()
{
long n;
cout<<"请输入一个长整数n:"<<endl;
cin>>n;
cout<<"整数"<<n<<"的最高位数字为:"<<head(n)<<endl;
cout<<"整数"<<n<<"去掉中间的零(0)后的结果为:"<<DelZero(n)<<endl;
cout<<"整数"<<n<<"的最大数字为:"<<MaxNumber(n)<<endl;
cout<<"整数"<<n<<"去掉首位后结果为:"<<DelHead(n)<<endl;
cout<<"整数"<<n<<"从大到小排序后的结果为:"<<SortNumber(n)<<endl;
}