递归
(1) 递归就是在过程或函数里调用自身;
(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。
递归算法一般用于解决三类问题:
(1)数据的定义是按递归定义的。(Fibonacci函数)
(2)问题解法按递归算法实现。(回溯)
(3)数据的结构形式是按递归定义的。(树的遍历,图的搜索)
以下是我求的1到100以内所有数的阶乘的和:
public int jiecheng(int n)//第n个数的阶乘
{
if (n == 1)
return 1;
else if (n == 2)
return 2;
else
return n * jiecheng(n - 1);
}
public int sumjiecheng(int n)//n个阶乘的和
{
if (n == 1)
return 1;
else if (n == 2)
return 3;
else
return jiecheng(n) + sumjiecheng(n - 1);
}
最后调用:sumjiecheng(100);(计算出1到100以内所有数的阶乘的和)
我们可以调用:jiecheng(8),求的是8的阶乘。
递归
(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。
递归算法一般用于解决三类问题:
(1)数据的定义是按递归定义的。(Fibonacci函数)
(2)问题解法按递归算法实现。(回溯)
(3)数据的结构形式是按递归定义的。(树的遍历,图的搜索)
以下是我求的1到100以内所有数的阶乘的和:
public int jiecheng(int n)//第n个数的阶乘
{
if (n == 1)
return 1;
else if (n == 2)
return 2;
else
return n * jiecheng(n - 1);
}
public int sumjiecheng(int n)//n个阶乘的和
{
if (n == 1)
return 1;
else if (n == 2)
return 3;
else
return jiecheng(n) + sumjiecheng(n - 1);
}
最后调用:sumjiecheng(100);(计算出1到100以内所有数的阶乘的和)
我们可以调用:jiecheng(8),求的是8的阶乘。