js递归题

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="com.deng.testjs.model.Person"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<script type="text/javascript">
	  
	  /**
	          利用递归实现:
	        1 1 2 3 5 8 13 21 34 根据规律(从第3项开始后项等于前面两项之和),请第30项的值
	  */
	  
	  function test(){
	    alert("非递归值为=" + cal(9));
	    alert("递归值为=" + calcForRecursive(9));
	    
	  }
	  
	  /**
	        不用递归实现
	  */
	  function cal(number){
        if(number <= 2){
         return 1;
        }
        
	    var a1 = 1;
	    var a2 = 1;
	    var result;
	    var temp;
	    
	    for(var i = 2; i < number; i++){
	      result = a1 + a2;
	      temp = a2;
	      a2 = result;
	      a1 = temp; 
	    }
	    
	    return result;
	  }
	  
	  
	  function calcForRecursive(number){
	    if(number <= 2){
           return 1;
        }
        
        return recursiveHandler(1, 1, 2,number);
        
	  }

	  function recursiveHandler(a1,a2,count,number){
	      var result = a1 + a2;
	      count++;
	      if(count == number){
	         return result;
	      }else{
	        return recursiveHandler(a2,result,count,number);
	      }
	  }
	
	
	</script>
	
  </head>
  
  
  <body>
    This is my JSP page. <br>
    <input type="button" οnclick="test()" value="test">
  </body>
</html>
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值