简单说明什么是递归?什么情况会使用?并使用Java实现一个简单的递归程序。
2018-03-15 22:34
761 查看
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;
}
}
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;
}
}
相关文章推荐
- 简单说明什么是递归,什么情况下会使用递归,并写一个简单的递归程序。
- 简单说明什么是递归,什么情况下会使用递归,并写一个简单的递归程序。
- 简单说明什么是递归,什么情况下会使用递归,并写一个简单的递归程序。
- 简单说明什么是递归,什么情况下会使用递归,并写一个简单的递归程序。
- 简单说明什么是递归,什么情况下会使用递归,并写一个简单的递归程序。
- 简单说明什么是递归,什么情况下会使用递归,并写一个简单的递归程序。
- 简单说明什么是递归,什么情况下会使用递归,并写一个简单的递归程序。
- 简单说明什么是递归,什么情况下会使用递归,并写一个简单的递归程序。
- 简单说明什么是递归,什么情况下会使用递归,并写一个简单的递归程序。
- 简单说明什么是递归,什么情况下会使用递归,并写一个简单的递归程序。
- 简单说明什么是递归,什么情况下会使用递归,并写一个简单的递归程序。
- 简单说明什么是递归,什么情况下会使用递归,并写一个简单的递归程序。
- 简单说明什么是递归,什么情况下会使用递归,并写一个简单的递归程序。
- 简单说明什么是递归,什么情况下会使用递归,并写一个简单的递归程序。
- XML的DOM解析 Java实现 使用递归解析一个XML文档
- 使用Java8的Lambda实现的一个简单案例
- 一个简单的Web服务器程序(java实现)
- java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?
- UI基础第十四弹:实现UItableview使用嵌套模型完成的一个简单汽车图标展示程序
- Java回顾:用一个Demo来说明继承抽象类和实现接口的简单框架模型