<%@ 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" onclick="test()" value="test">
</body>
</html>
分享到:
相关推荐
在`js代码-010面试题--递归的理解`这个主题中,我们主要探讨以下几个核心知识点: 1. **递归的基本原理**:递归函数由两部分组成:基本情况(Base Case)和递归情况(Recursive Case)。基本情况是问题的最简单形式...
本题解主要关注的是LeetCode中的第59题,这是一个关于递归与回溯策略的问题,特别是在解决矩阵问题上的应用。递归和回溯是计算机科学中解决问题的两种常用方法,它们在处理复杂逻辑和搜索问题时尤其有效。 递归是一...
综上所述,通过使用JavaScript实现汉诺塔问题的递归解决方法,可以帮助我们深入理解递归算法的工作原理和实现方式,同时也能更好地掌握如何在实际中应用递归算法解决具体问题。对于任何有志于提高编程技能的开发者而...
本压缩包文件“javascript_leetcode面试题解递归与回溯问题之第1291题顺次数_题解.zip”显然包含了对LeetCode第1291题的解答,重点讨论了递归和回溯这两种编程技巧。 递归是编程中一种强大的技术,它是指一个函数或...
本题解聚焦于JavaScript解决LeetCode中的第1219题,即“黄金矿工”问题,它涉及到递归与回溯这两种重要的算法。 递归是编程中的一种基本概念,指的是函数在其定义中调用自身的过程。在解决复杂问题时,递归可以使...
总结起来,JavaScript LeetCode面试题解中的第1079题活字印刷,是一个运用递归与回溯算法解决组合优化问题的经典案例。通过解决此类问题,开发者可以深化对递归理解,掌握回溯法在求解多解问题中的应用,并进一步...
第78题“子集”是LeetCode中的一个经典递归与回溯问题,旨在考察开发者对这两种核心算法的理解和应用。 递归是一种解决问题的方法,它将一个问题分解为更小的子问题,直到子问题变得足够简单可以直接求解。递归通常...
本题涉及的是第401题——“二进制手表”,这是一个关于递归与回溯的经典问题,我们来详细探讨一下相关知识点。 首先,我们要理解“二进制手表”的概念。在传统的手表中,我们通常用12小时制来表示时间,而在二进制...
第77题“组合”是LeetCode中的一道经典递归与回溯问题,旨在考察开发者对这两种编程技巧的理解和应用。 递归是一种解决问题的方法,它将一个问题分解为更小的子问题,直到子问题变得足够简单可以直接求解。递归通常...
以上就是关于"javascript_leetcode面试题解递归与回溯问题之第560题和为K的子数组"的详细解析,希望对你的学习和面试准备有所帮助。在实践中不断练习和优化,将使你在面试中更加自信,更好地展示自己的技能。
本篇内容主要聚焦于JavaScript解决LeetCode中的第90题——"子集II"(Subsets II)的递归与回溯算法。 子集II问题要求我们找到一个给定整数数组的所有不重复子序列,且这些子序列中包含至少两个连续的数字。这个题目...
本题解集中关注的是LeetCode第47题,即“全排列”问题,这是一个典型的递归与回溯算法题目。递归是函数或程序调用自身的过程,而回溯则是一种尝试所有可能解决方案并逐步撤销无效路径的方法,常用于解决组合优化问题...
本题解聚焦于LeetCode中的第212题——"单词搜索",这是一个典型的递归与回溯问题。递归与回溯是算法设计中的重要技巧,它们在解决复杂问题时,尤其是涉及到搜索和优化的问题上,表现得尤为高效。 "单词搜索"题目的...
总的来说,这道LeetCode的第54题螺旋矩阵是检验开发者对递归与回溯理解的好例子。通过解这道题,不仅可以锻炼编程技巧,还能加深对这两种重要算法的理解,从而更好地应对JavaScript相关的面试挑战。
现在有一个数据,需要你渲染出对应的列表出来: var data = [ ...语罢,又是一道题飞来! 哦,还带了儿子来当帮手。我一个循环再一个循环,轻松带走你们 var data2 = [ {"id":1,children:[{"id":
在本压缩包中,重点讲述了使用递归与回溯策略解决LeetCode的第8题和第9题,这两道题都涉及到括号的有效性。下面将详细解析这两个问题,以及如何运用递归和回溯方法来解决它们。 首先,让我们来看看第8题,"有效的...
其中,第73题“Set Matrix Zeroes”是一个关于递归与回溯的经典问题。在这个问题中,我们需要理解如何在给定的二维矩阵中,通过一次遍历将所有值为0的元素及其同行同列的所有元素都置为0。 矩阵是计算机科学中常用...
其中,第93题“复原IP地址”是一个涉及到递归与回溯的经典问题。此题旨在测试程序员对字符串处理、条件判断以及高效算法设计的理解。 题目描述: 给定一个只包含数字的字符串`s`,任务是将其分割成四个非空的子串,...
JavaScript LeetCode面试题解中的第51题是“N皇后问题”,这是一道经典的问题,主要涉及到了递归和回溯算法。在编程面试中,这类问题经常被用来考察候选人的逻辑思维能力和对复杂问题的解决能力。接下来,我们将深入...
本题解针对LeetCode的第46题——全排列(Permutations),它属于递归与回溯算法的范畴。递归是一种函数或方法通过调用自身来解决问题的技术,而回溯则是当遇到错误或无效路径时,通过撤销最近的决策并尝试其他可能性...