简单说明什么是递归?什么情况会使用?并使用Java实现一个简单的递归程序。

1、递归做为一种算法在程序设计语言中广泛使用,是指函数/过程/子程序在运行过程中直接或间接调用自身而产生的重入现象。
2、递归算法一般用于解决三类问题:

  1)数据的定义是按递归定义的。(Fibonacci(斐波那契)的函数)
  2)问题解法按递归算法实现。(回溯)

  3)数据的结构形式是按递归定义的。(树的遍历,图的搜索)
3、下面是使用递归算法实现计算某个整数在二进制中的个数,代码如下所示:

/**
*计算二进制中1的个数,
*N为奇数,二进制中1的个数等于N/2的个数
*例子:
*num = 13
*1.getBinary(13/2=6)+1;
*2.getBinary(6/2=3)+1
*3.getBinary(3/2=1)+1+1
*4.getBinary(1)+1+1;
*getBinary(1)返回1,与后边两个1相加得结果3
*/
public static innt getBinary(int num){
  if(num ==1)
    return 1;
  if(0 ==num % 2){
    return getBinary(num/2);
  }else{
    return getBinary(num/2)+1;
  }
}

猜你喜欢

转载自blog.csdn.net/sfeavh/article/details/79574834