按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4)

分析

这是一道典型的递归问题,涉及到了调用栈和栈帧的知识。该函数里我把方法设为 printNum。简单来说,每一次的方法调用就称为一个栈帧。
1、资料部分
–>> 什么是栈帧呢?
栈帧(Stack Frame)每一次函数的调用,都会在调用栈(call stack)上维护一个独立的栈帧(stack frame).每个独立的栈帧一般包括:

  • 函数的返回地址和参数
  • 临时变量: 包括函数的非静态局部变量以及编译器自动生成的其他临时变量
  • 函数调用的上下文

在函数调用的过程中,有函数的调用者(caller)和被调用的函数(callee).
调用者需要知道被调用者函数返回值;
被调用者需要知道传入的参数和返回的地址;

来自简书:栈帧 (Stack Frame) 作者:一铭_
https://www.jianshu.com/p/b666213cdd8a

2、理解部分
例如数字1234,要想依次打印出1 2 3 4,则必须用除以 ( / ) 10的方法,来先把除下来得到的结果放入“栈”里,这是 “递” 的过程;当( num > 9)不再成立时,此时num = 1,然后再用模 ( % ) 10的方法,得到数字的每一位,这是 “归” 的过程。两者一结合,便是这道题递归的逻辑理解。

回归正题

1、以下为我自己的理解

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值