问题
采用递归思想,设计并实现一个函数,其功能是将正整数参数n,由低位到高位倒序输出。例如n为4892,则输出 2 9 8 4。
分析
4892 % 10 = 2 (取余数) 4892 / 10 = 489(取整数)
489 % 10 = 9 (取余数) 489 / 10 = 48(取整数)
48 % 10 = 8 (取余数) 48/10 = 4(取整数)
4 % 10 = 4(取余数) 4/10 = 0 (结束)
题目要求打印的结果:余数
递归条件:取整
结束条件:当前值小于10
Java实现
public static void reverseNum(int n) {
if (n < 0) return;
if (n < 10){
System.out.print(n);
return;
}
System.out.print(n % 10+" ");
reverseNum(n / 10);
}
- 时间复杂度:O(n)
- 空间复杂度:O(1)
Go实现
func reverse(n int) {
if n == 0 {
return
}
fmt.Print(n%10)
n /= 10
reverse(n)
}