ZZULIOJ题解
1101: 逆序数字(函数专题)
题目描述
输入一个正整数n,计算n的逆序数m,输出m与n的和。要求程序定义一个inverse()函数和一个main()函数,inverse()函数接收一个整数值,返回这个数中数字逆序后的结果值。例如,给定数7631,函数返回1367 。
int inverse(int n)
{
//计算并返回n的逆序数字
}
本题如果是C/C++代码提交,只需要提交inverse函数的定义部分,提交其它内容,编译出错。
输入
一个正整数n,输入保证计算结果在int范围内。
输出
输出一个整数,n与n的逆序数的和。输出占一行。
样例输入
1780
样例输出
2651
这里只要inverse的函数部分即可。切莫画蛇添足。注意数据处理。
代码
int inverse(int n)
{
int m,i,j,x=1,sum=0;//m用来储存数字位数,i,j是循环变量,sum即为返回的逆序数字
m=log10(n1)+1;//再次解释下,log10(9)=0,但其实位数是1所以+1
for(j=1;j<m;j++)//循环m次,来确定最高位
{
x*=10;//x用来确定n的最高位应该是10的多少次幂
}
for(i=1;i<=m;i++)//循环m次
{
sum+=n%10*x,x/=10,n/=10;//每次将下个数字的倍数/10,每次舍去n的最后一位
}
return sum;//计算并返回n的逆序数字
}