输入:多组输入,每组输入一个非负整数
输出:
逆序输出结果,每个结果占一行。
样例输入 Copy
12 1230 0
样例输出 Copy
21 321 0
本题采用了间接的调用递归,重要的是如何处理尾数为0的数,并且要保证每次处理完尾数为0的数之后还要检查是否尾数仍为0.
#include <stdio.h>
int fun( int n){
printf("%d",n%10);
if((n/10)!=0){
return fun(n/10);
}
}
int f(int n){
int i=0;
for(;;i++){
n=n/10;
//要保证每个数的结尾均不为0
if(n%10!=0){
return n;
break;
}else{
return f(n);
}
}
}
int main(){
int n;
while(~scanf("%d",&n)){
if(n==0){
printf("0");
}
else if(n%10==0){
fun(f(n));
}else {
fun(n);
}
printf("\n");
}
return 0;
}