黑马程序员技术交流社区

标题: 函数递归一题,求分析。 [打印本页]

作者: yunfeng482    时间: 2016-3-15 12:11
标题: 函数递归一题,求分析。
  1. public class DiguiDemo {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) {
  6.                 // TODO Auto-generated method stub
  7.                
  8.                 koo(10);

  9.         }
  10.        
  11.         public static void koo(int num){
  12.                 if(num>0)
  13.                         koo(num/2);
  14.                 System.out.print(num+"\t");
  15.         }

  16. }
复制代码


作者: yunfeng482    时间: 2016-3-15 12:14
请问最后输出序列什么?能分析下吗
作者: lijiy09    时间: 2016-3-15 12:47
koo(10)能解释下吗,看不懂?
作者: 向北_    时间: 2016-3-15 13:39
public static void koo(int num) {
                if (num > 0) {
                        koo(num / 2);
               
               
                        System.out.println(num );
                }
        }




应该打印出  1   2    5       10
作者: yunfeng482    时间: 2016-3-15 19:00
lijiy09 发表于 2016-3-15 12:47
koo(10)能解释下吗,看不懂?

调用静态方法,传入10参数。{:2_34:}这是基础,大哥
作者: yunfeng482    时间: 2016-3-15 19:05
向北_ 发表于 2016-3-15 13:39
public static void koo(int num) {
                if (num > 0) {
                        koo(num / 2);

大哥,输出反了,你可以运行测试下。这题可以很好的理解递归。
作者: yunfeng482    时间: 2016-3-15 19:08
yunfeng482 发表于 2016-3-15 19:05
大哥,输出反了,你可以运行测试下。这题可以很好的理解递归。

不对,不是反了。是输出0 1 2 5 10
作者: 向北_    时间: 2016-3-15 19:22
yunfeng482 发表于 2016-3-15 19:08
不对,不是反了。是输出0 1 2 5 10

system 那一行代码是在  if {}外????
作者: 兵蜂    时间: 2016-3-15 20:30
是不是1 2 5 10
作者: yunfeng482    时间: 2016-3-15 20:44
向北_ 发表于 2016-3-15 19:22
system 那一行代码是在  if {}外????

输出语句在if外的话 就是0 1 2  5 10 在if内就是 1 2 5 10
作者: 超人d咖啡也加糖    时间: 2016-3-15 20:57
本帖最后由 超人d咖啡也加糖 于 2016-3-15 20:58 编辑
yunfeng482 发表于 2016-3-15 20:44
输出语句在if外的话 就是0 1 2  5 10 在if内就是 1 2 5 10

if如果不写大括号的话范围是只控制if后的第一个语句
作者: 大大阳    时间: 2016-3-15 21:17
打印的是0 1 2 5 10





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2