黑马程序员技术交流社区
标题:
递归算法
[打印本页]
作者:
Neii
时间:
2015-9-4 20:16
标题:
递归算法
/**递归类Recursion的定义*/
public
class
Recursion
{
//递归方法DecimalToBinary,把一个十进制数转换成二进制数
public
static
void
DecimalToBinary
(
int
num
){
if
(
num
==
0
){
//当num=0时,循环结束
return
;
}
else
{
DecimalToBinary
(
num
/
2
);
//调用递归方法
System
.
out
.
print
(
num
%
2
);
}
}
//递归方法sum,求1+2+...+100 的求和
public
static
int
sum
(
int
num
){
if
(
num
>
0
){
return
num
+
sum
(
num
-
1
);
//调用递归方法
}
else
{
return0
;
//当num=0时,循环结束
}
}
//递归方法hanon,求瀚诺塔函数
public
static
void
hanon
(
int
n
,
char
a
,
char
b
,
char
c
){
if
(
n
==
1
){
move
(
1
,
a
,
c
);
//最后一种情况是,把A柱子上盘子移到C柱子上。
return
;
}
hanon
(
n
-
1
,
a
,
c
,
b
);
//递归,把n-1个盘子从A 盘上借助C盘移到B盘上
move
(
n
,
a
,
c
);
//调用move()方法
hanon
(
n
-
1
,
b
,
a
,
c
);
//递归,把把n-1个盘子从B盘上借助A盘移到C盘上
}
public
static
void
move
(
int
n
,
char
a
,
char
c
){
System
.
out
.
println
(
n
+
":"
+
a
+
"-->"
+
c
);
//打印移动盘子情况
}
//主函数main
public
static
void
main
(
String
[]
args
){
hanon
(
3
,
'A'
,
'B'
,
'C'
);
//求瀚诺算法
System
.
out
.
println
(
sum
(
100
));
//求和
DecimalToBinary
(
103
);
//十进制转换二进制
}
}
作者:
binarycoc
时间:
2015-9-4 21:59
思路一直比较模糊 看的不是太明白
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2