目录
一、什么是递归?
递归算法是一种直接或间接地调用自身的算法。在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解.
使用递归有两个前提条件:
1.有一个趋近与终止的条件。
2.自己调用自己 。
二、Fibonacci数列或斐波那契数列
费波那契数列(兔子繁殖数列)
1.定义
https://www.jianshu.com/p/a93eb81fb8a5
2.流程
3.代码
public class Fibonacci {
public static void main(String[] args) {
int fun = fun(5);
System.out.println(fun);
}
public static int fun(int num){
if(num == 1 || num == 2){
return 1;
}
return fun(num-1)+fun(num-2);
}
}
4.运行结果
三、阶乘n!
1.定义
一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。
亦即n!=1×2×3×...×(n-1)×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
2.代码
public class Factorial {
public static void main(String[] args) {
int funm = fac(4);
System.out.println(funm);
}
public static int fac(int num){
if(num == 0 || num == 1){
return 1;
}
return num*fac(num-1);
}
}
3.运行结果
四、用递归方法正序显示字母元素
1.代码
public class NumValue {
public static void main(String[] args) {
String[] str = {"a","b","c","d"};
int i = 0;//打印String数组的起始位置
printArr(str,i);
}
//打印数组
public static void printArr(String[] str,int i){
if(i>=0 && i<str.length){
System.out.println(str[i]);
i++;
printArr(str,i);
}
}
}
2.运行结果
五、求sum=a+aa+aaa+...+aa..aa的值
1.代码
public class SunValue {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您要累加的值:");
int i = scanner.nextInt();
System.out.println("请输入要累加次数:");
int nums = scanner.nextInt();
int sum = 0;
int num = i;
for (int j= 0; j< nums;j++){
sum += num;
num = num*10+i;
}
System.out.println("和为"+sum);
}
}
2.运行结果