题目描述
输入一个正整数n,计算n的逆序数m,输出m与n的和。要求程序定义一个inverse()函数和一个main()函数,inverse()函数接收一个整数值,返回这个数中数字逆序后的结果值。例如,给定数7631,函数返回1367 。
int inverse(int n)
{
//计算并返回n的逆序数字
}
输入
一个正整数n,输入保证计算结果在int范围内。
输出
输出一个整数,n与n的逆序数的和。输出占一行。
样例输入 Copy
1780
样例输出 Copy
2651
代码及详解见以下:
#include <stdio.h>
#include <stdlib.h>
int inverse(int n);
int main()
{
int n;
scanf ("%d",&n);
int nn=inverse(n);//nn为输入数字的逆序数
printf ("%d",n+nn); //输出数字其本身与逆序数之和
return 0;
}
int inverse(int n)
{
int i=0;
for (int m=n;m>0;i=i+1) //判断输入数字长度
{
m=m/10;
}
int s=0;
for (int k=0;k<i;k++)
{
s=s+(int)(n/pow(10,(i-k-1)))*(int)(pow(10,(i-1))/pow(10,(i-k-1)));
//pow数据类型为double,需转化为int型,s为逆序数
int nn=(pow(10,(i-k-1)));
n=n%nn;
}
return s;
}