1160:倒序数
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 19427 通过数: 13887
【题目描述】
输入一个非负整数,输出这个数的倒序数。例如输入123,输出321。
【输入】
输入一个非负整数(保证个位不为零)。
【输出】
输出倒序的数。
【输入样例】
123
【输出样例】
321
【分析】
倒序数即反序数,求解一个数n的反序数的方法可以用while循环,然后不断的用取余运算符从n的尾部分离出个位,并乘10相加。
如果用递归求解,可以设 rev(x) 为求反序数的函数,递归式为
【参考代码】
(1)非递归方法: #include <stdio.h> int rev(int n) { int t,res=0; t=n; while(n) { res=res*10+n%10; n/=10; } return res; } int main() { int n; scanf("%d",&n); printf("%d\n",rev(n)); return 0; }
(2)递归法,逐位输出,这种方法必须保证个位不为零。设 rev(x) 函数求解倒序数,递归式:rev(x) = rev(x/10),递归出口:x<10 时,直接返回。
#include <stdio.h>
void rev(int x)
{
printf("%d",x%10);
if(x>9)
rev(x/10);
return;
}
int main()
{
int n;
scanf("%d",&n);
rev(n);
return 0;
}
http://ybt.ssoier.cn:8088/problem_show.php?pid=1160