题目描述
输入一个正整数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
以下代码都是求逆序数字的,但不都是该题的答案代码
方法一:
#include <stdio.h>
#include <math.h>
void main()
{
int number, k, fig=0, i, j, num, sum=0;
printf("请输入一个整数:");
scanf("%d",&number);
k=number;
while(k!=0)
{
++fig; //fig用来保存输入的数的位数
k /= 10;
}
for(i=0; i<fig; i++)
{
num = number % 10; //求余数
for(j=0; j<fig-i-1; j++)
num = num*10; //余数乘上所对应的的10的次方
sum = sum + num;
number /= 10;
}
printf("逆序数为:%d\n",sum);
return 0;
}
方法二:
#include <stdio.h>
void main()
{
int number, turnnum=0;
printf("请输入一个整数:");
scanf("%d",&number);
while(number)
{
turnnum = turnnum*10 + number%10;
number /= 10;
}
printf("逆序数为:%d\n",turnnum);
return 0;
}
方法三:
#include<stdio.h>
#include<math.h>
int inverse(int n)
{
int a,c=0;
while(n!=0)
{
a=n%10;
c=(c+a)*10;
n=n/10;
}
return c/10;
}
/*int main()
{
int x,y;
scanf("%d",&x);
y=x+inverse(x);
printf("%d",y);
return 0;
}*/看题目要求加不加