我爱占星网 我爱占星网
首页
编程
java
php
前端
首页 编程 java php 前端

f(15)是为什么结果是120

void f(int n)
{if(n<3) printf("%d",n);
else{f(n/3);
printf("%d",n%3);
}
}

这是递归啊,而且是逆序输出。
f(15) 不满足if(n<3),所以调用f(n/3),即f(5)
f(5),不满足if(n<3),所以调用f(5/3),即f(1)
f(1),满足if(n<3),输出n,即输出1
回退到f(5)的printf,输出5%3,即2
再回退到f(15),输出15%3,即0
所以最后输出120

输出是:1 2 0 ,因为printf("%d",n); 语句里"%d" 没有空格间隔,所以就成了:120.

img

这个是在函数递归

近期文章

  • python Xpath获取的元素可以click 不能sendkeys
  • jtopo设置点击画面不可拖拽
  • manjaro一定要更换国内镜像和arch源吗?
  • SyntaxError: invalid syntax print "get remote configure failed: %s, %s" %
  • Qt使用函数指针关联槽函数
  • 我不能从已经使用GROUP BY的表中循环记录
  • hive创建自定义函数报错
  • git push提交代码报错
  • globalprotect连接失败
  • 关于#openGL#的问题,如何解决?
  • 证书上传出现错误 fiddler 有没有什么方法
  • 检测与答案一致,但说答案错误,不知道哪里错了
  • 利用visual studoi 2013版本窗口解决冒泡排序
  • 如何添加“选择一个类别”文本以下拉选项列表?
  • 安卓开发连接网关问题
  • 关于visp的问题,某文件拒绝访问
  • 为什么我这里都有显示但是手机模拟器却没有显示出来?
  • 解释器和pycharm
  • sql 咨询 显示没有员工的所有部门
  • 怎么统计多种字符的数量

Copyright ©2022 我爱占星 All Rights Reserved.

浙ICP备2022030071号-1

部分图文来自网络,如有侵犯您的版权,请告诉我们删除

友情链接:代码精华