java如何实现递归,java递归写法
如何解决写爬虫IP受阻的问题?立即使用。
创建java递归的方法:
调用程序本身的编程技巧叫做递归。作为一种算法,递归在编程语言中被广泛使用。一个过程或函数在其定义或描述中有一个直接或间接调用自身的方法。它通常将一个大而复杂的问题逐层转化为一个与原问题相似的更小的问题来解决。递归策略只需要少量的程序来描述求解过程中所需的重复计算,大大减少了程序的代码量。递归的能力是用有限的语句定义无限的对象集。一般来说,递归需要边界条件,递归前进段和递归返回段。当边界条件不满足时,递归推进;当满足边界条件时,它递归返回。
首先,我们来看一个最简单的求和例子。
span style= font-size:18px;公共静态void main(String[] args) {
system . out . println(sum num(100));//输出:5050
}
//求1-100的和
私有静态int sumNum(int n) {
if (n==1) {
返回1;
}
返回n sum num(n-1);
}/span接下来我们用递归实现斐波那契数列。
斐波那契数列,又称黄金分割数列,指的是这样一个数列:0,1,1,2,3,5,8,13,21,数学上,斐波那契数列递归定义如下:F(0)=0,F(1)=1,F(n)=1
//通过递归求解
公共静态int fib(int n) {
如果(n==0)
返回0;
if (n==1 n==2)
返回1;
返回光纤(n - 1)光纤(n-2);
}
//通过循环求解
public static int fib2(int n) {
int a=0,b=1,c=1;
如果(n==0)
返回0;
if (n==1 n==2)
返回1;
for(int I=0;I n-1;i ) {
c=a b;
a=b;
b=c;
}
返回c;
}
//用数组求解
public static int fib3(int n) {
int[]arr=new int[n 1];
arr[0]=0;
arr[1]=1;
for(int I=2;I=n;i ) {
arr[I]=arr[I-1]arr[I-2];
}
return arr[n];
}我们再来看另一个例子,计算阶乘。
阶乘是1808年由Keyston Kramp (1760 ~ 1826)发明的算术符号,是一个数学术语。
正整数的阶乘是所有小于等于该数的正整数的乘积,0的阶乘是1。自然数n的阶乘写成n!那是n!=123.n .阶乘也可以递归定义:0!=1,n!=(n-1)!n .
//通过递归计算阶乘
公共静态int jc(int n)
{
//结束条件
如果(n==1)
返回1;
//递归条件
返回n * JC(n-1);
}
//使用for循环实现阶乘
公共静态int jc2(int n)
{
int sum=1;
for(int I=1;I=n;i ) {
sum *=I;
}
返回总和;
}递归的条件:
1.结束条件:必须有明确的递归结束条件,称为递归退出。
2.递归条件:递归算法。
递归的特点:
1.简洁明了:递归算法一般让人对运算结构一目了然,非常接近数学自然语言。
2.内存消耗高:在递归调用的过程中,系统为每一层的返回点和局部量开辟一个堆栈来存储。太多的递归很容易导致堆栈溢出。所以一般不建议用递归算法设计程序。
以上是如何创建一个简单的java递归例子的细节。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。