java中的方法递归
JAVA中的方法递归递归的思路代码举例一、递归的思路
一个方法在执行时,调用自身被称为递归。
递归相当于数学归纳法,有一个起始条件,有一个递推公式。
递归可以分为:单路递归和多路递归(如二叉树和斐波那契数列)。二、代码举例
1、n的阶乘n的阶乘publicstaticintfac(intnum){if(num1){return1;}returnnumfac(num1);}publicstaticvoidmain(String〔〕args){intn5;System。out。println(resultfac(n));}123456789101112
运行结果
2、按照顺序打印一个数字的每一位按照顺序打印一个数字的每一位publicstaticvoidprint(intn){if(n9){print(n10);}System。out。print(n10);}publicstaticvoidmain(String〔〕args){print(12345);}1234567891011
运行结果
3、输入一个非负整数,返回组成他的数字之和,如输入1729,则返回172919publicstaticintsum(intn){if(n10){returnn;}returnn10sum(n10);}publicstaticvoidmain(String〔〕args){intn525615;intretsum(n);System。out。println(thesumofnret);}123456789101112
运行结果
4、求斐波那契数列的第n项
斐波那契数列:11235813publicstaticintfib(intn){if(n1n2){return1;}returnfib(n1)fib(n2);}publicstaticvoidmain(String〔〕args){System。out。println(fib(10));}123456789
运行结果
注意:当n的值越来越大时,程序运行的速度很慢,原因是进行了大量的重复运算。所以对于斐波那契数列,一般采用迭代的代码版本。publicstaticintfib(intn){intn11;intn21;intnum0;for(inti3;in;i){numn1n2;n1n2;n2num;}returnnum;}publicstaticvoidmain(String〔〕args){System。out。println(fib(10));}1234567891011121314
运行结果
需要注意的是,如果编译时出现以下错误,说明栈溢出,要仔细检查代码的终止条件是否没有写或者写错。
想要了解更多关于java内容,官方技术交流群:487098661,让你快速掌握java从入门到精通实战技能。