大家好,又见面了,我是你们的朋友全栈君。
递归:自己调用自己
迭代:反复替换的意思
递归与迭代都是基于控制结构:迭代用重复结构,而递归用选择结构。
递归与迭代都涉及重复:迭代显式使用重复结构,而递归通过重复函数调用实现重复。
递归与迭代都涉及终止测试:迭代在循环条件失败时终止,递归在遇到基本情况时终止。
使用计数器控制重复的迭代和递归都逐渐到达终止点:迭代一直修改计数器,直到计数器值使循环条件失败;递归不断产生最初问题的简化副本,直到达到基本情况。迭代和递归过程都可以无限进行:如果循环条件测试永远不变成false,则迭代发生无限循环;如果递归永远无法回推到基本情况,则发生无穷递归。
递归函数是通过调用函数自身来完成任务,而且在每次调用自身时减少任务量。而迭代是循环的一种形式,这种循环不是由用户输入而控制,每次迭代步骤都必须将剩余的任务减少;也就是说,循环的每一步都必须执行一个有限的过程,并留下较少的步骤。
程序设计:
public class Fibonacci1 {
/**递归求解
* @param args
* a0=1
* a1=1
* an=a(n-1)+a(n-2)
*/
//递归求解
public static long Fuc(int n){
if (n==0|n==1) {
return 1;
}
else {
return Fuc(n-1)+Fuc(n-2);
}
}
//迭代求解
public static long Fuc2(int n){
int head=1;int tail=1;int result=0;
if (n>1) {
for (int i = 2; i <= n; i++) {
result=head+tail;
head=tail;
tail=result;
}
}
else {
result=1;
}
return result;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(Fuc(5));
System.out.println(Fuc2(5));
}
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136534.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...