/*****
题目描述
输入一个正整数n,计算n的逆序数m,输出m与n的和。要求程序定义一个inverse()函数和一个main()函数,inverse()函数接收一个整数值,返回这个数中数字逆序后的结果值。例如,给定数7631,函数返回1367 。
int inverse(int n)
{
//计算并返回n的逆序数字
}
本题如果是C/C++代码提交,只需要提交inverse函数的定义部分,提交其它内容,编译出错。
输入
一个正整数n,输入保证计算结果在int范围内。
输出
输出一个整数,n与n的逆序数的和。输出占一行。
样例输入 Copy
1780
样例输出 Copy
2651
*****/
!!!!本文借用了 八百标兵奔北坡666 看原文请点击这里 同学的一部分代码,写的有点精彩,但是因为注释太少了,对新手不友好,所以再此我就加上了一些废话,如有不合适请联系我。
以下是我的代码:
#include<stdio.h>
int inverse(int n);
int main()
{
int n,m;
scanf("%d",&n);
m = n + inverse(n);
printf("%d",m);
return 0;
}
int inverse(int n)
{
//计算并返回n的逆序数字
int x,y;
x = 0;y = 0;
while(n != 0)
{
x = n%10; //取出n的个位
y = (y + x) *10;//给个位升阶,并且加上上一轮计算的数字
n = n/10; //y其实就是x的更高的一个阶位
//将n的第二位暴露出来,用第一步可以取出十位。
//然后再升阶,此时个位变成了十位,十位变成了百位,也就完成了逆序。
}
y = y /10; //之所以在除以10是因为我们每次循环以后,最低位都会被
return y; //乘以10,所以要降下来。
}
来源:CSDN
作者:浩然气V
链接:https://blog.csdn.net/qq_39345244/article/details/104684647