验证集: 输入>输出
123>321 120>21 2040>402 204000>402
直接给代码,注释应该够了。
//使用递归编写一个程序,逆序输出一个非负整数。例如输入1234,输出4321(不含前导0)。
//123>321 120>21 2040>402 204000>402
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in =new Scanner(System.in);
int n;
while(in.hasNext()){
n=in.nextInt();
int flag=0;
//DecimalFormat df = new DecimalFormat("0.000000");
System.out.println(f(n,flag));
}
in.close();
}
public static String f(int i,int flag){
if(i!=0&&i%10==0&&flag==0){
//判断是否末尾为0,flag==0排除了是非递归第一次后“形成的数”
return""+f(i/10,flag);
}else if(i<10){
return Integer.toString(i);
}
flag=1;
//说明是两位数及以上且末尾不为0的情况,标记,
//之后要防止其再进入i!=0&&i%10==0的if结构中
int a=i%10;
return Integer.toString(a)+f(i/10,flag);
}
}