当前位置: 首页 > news >正文

java中的递归函数调用函数_java 递归函数

一、递归函数,通俗的说就是函数本身自己调用自己...

如:n!=n(n-1)!

你定义函数f(n)=nf(n-1)

而f(n-1)又是这个定义的函数。。这就是递归

二、为什么要用递归:递归的目的是简化程序设计,使程序易读

三、递归的弊端:尽管非递归函数效率高,但较难编程,可读性较差。递归函数的缺点是添加了系统开销,也就是说,每递归一次,栈内存就多占用一截

四、递归的条件:需有完毕任务的语句,需满足递归的要求(减小而不是发散)

五、递归进阶:

1.用递归算n的阶乘:

分析:n!=n*(n-1)*(n-2)...*1

public int dReturn(int n){

if(n==1){

return 1;

}else{

return n*dReturn(n-1);

}

}

2.用递归函数算出1到n的累加:1+2+3+4+..+n

public int dReturn(int n){

if(n==1){

return 1;

}else{

return n+dReturn(n-1);

}

}

3.要求输出一个序列:1,1,2,3,5,8,11......(每个数为前两个数子之和,要求用递归函数)

用java递归来表示一个函数:F(n)=F(n-1)+F(n-2);F(0)=1;F(1)=1;

分析:X1=1; X2=1; X3=X1+X2; X4=X2+X3; ... ; Xn=X(n-1)+X(n-2)

public int F(int n){

if(n==1){

return 1;

}else if(n==2){

return 1;

}else{

return F(n-1)+F(n-2);

}

}

4.java用递归方法反向打印一个整数数组中的各个元素

public static void  printAll(int index,int[] arr){

System.out.println(arr[index]);

if(index > 0){

printAll(--index,arr);

}

}

public static void main(String[] args){

int[] arr={1,2,3,4,5};

printAll(arr.lenth-1,arr);

}

5.编程求解:若一头小母牛,从出生起第四个年头開始每年生一头母牛,按次规律,第 n 年时有多少头母牛?

public static int cattle(int n){

if(n<=0){

return 0;

}else if(n<=3){

return 1;

}else{

return cattle(n-1)+cattle(n-3);

}

}

public static void main(String[] args){

int n=10;

System.out.println(n+"年后共同拥有"+cattle(n)+"头牛");

}

递归、线性递归、尾递归的概念?

http://www.xdnf.cn/news/799651.html

相关文章:

  • VS2008 ACtivex 制作CAB带 Vcredist_x86.exe 方案
  • 常见无法登陆MSN原因
  • 关于优质博客聚合的一点思考
  • 公交车查询系统软件测试,公交APP评测:谁是最好用的公交线路查询软件?
  • 郭涛 黄渤 田原09贺岁大片《高兴》DVD修正版
  • Lesson40 FIFO的配置与使用
  • 从Win32程序中的主函数中获取命令行参数 _twinmain
  • InputFormatOutputFormat
  • [正则表达式]文本框输入内容控制=限制仅仅只给输入数字;中文;英文;符号。
  • android一些细节问题
  • Windows XP任务计划不能执行的解决的方法
  • BigWorld
  • DOTA系列 食尸鬼(小狗)攻略
  • 一份较详细的MS服务
  • CheckBox复选框
  • 关于自己项目(听书系统)的简介
  • Windows Media Player 播放.WMV文件破解许可证
  • SID310S/D/Q-10MHz, 低噪声, 轨至轨, CMOS 运算放大器替代SGM722
  • Windows新版算号器技术原理
  • 柏睿网络-建设机房的必要性
  • 什么是Google PR值? 如何提高PR值
  • Bitmap recycle()
  • Linux操作系统各版本ISO镜像下载(包括oracle linux\redhat\centos\ubuntu\debian等)
  • 智能影视站系统 光线 CMS1.5 正式版
  • ArrayList的遍历方式
  • 输送带的设计
  • Java中的日志记录
  • qvod(快播)电影批量下载器(轻松下载连续剧)
  • 【2025RAG最新进展】
  • 卡巴斯基KAV/KIS 6.0/7.0 授权许可文件永久免费更新方法