jsp基础练习题
用表格的形式输出斐波那契数列数列的前20项值效果图如下
方法一(简单易理解)
基本思路:
首先通过数组的方式定义数组的前两位,然后通过两次for循环实现效果,第一for循环实现的是序号1-20通过table标签实现表格然后在通过第二次for循环实现后两项相加等于第三项最后输出
注:两个for循环之后,由于tr是块元素,所以会垂直分布,因此要通过浮动来设置并列显示
<table border="1" style="float: left ">
<tr><td><%out.print("序号");%></td> </tr>
<%for(int i=1;i<=20;i++){%>
<tr><td ><% out.print(i);%></td></tr>
<% }%>
<%int num[] = new int[20];%>
<%num[0] = 0;%>
<%num[1] = 1;%>
</table>
<table border="1" style="float: left">
<tr ><td> <%out.print("值");%></td></tr>
<tr><td> <%out.print(num[0]);%></td></tr>
<tr><td> <%out.print(num[1]);%></td></tr>
<%for(int i = 2; i < 20; i++){%>
<%num[i] = num[i - 1] + num[i - 2];%>
<tr><td><%out.print(num[i]+" ");%></td></tr>
<%}%>
</table>
方法二
基本思路;
整体思路:通过四个变量,分别代表前面的数字、后面的数字、斐波那契数列数、项数,然后通过while循环,count++实现项数的不断增长,然后输出count和sequence的值
然后进行下一轮count和sequence的判断,count=aprevious+latter意思是让前面两个数增加生成新的数字,然后aprevious=latter是让aprevious保留前面的那个数latter=sequence(保留新的数字)方便下一次循环的时候让
latter参与运算。
<html>
<head>
<title>斐波那契数列</title>
</head>
<body>
<table border="1">
<tr>
<th>项序号</th>
<th>值</th>
</tr>
<%
int aprevious=1; //代表的是前面的值
int latter=1; //代表的是后面的值
int sequence=1; //代表斐波那契数列
int count=1; //项的数目
out.println("<tr>"+"<td>"+count+"</td>");
out.println("<td>"+aprevious+"</td>"+"</tr>");
while (sequence<=6765){
count++;
out.println("<tr>"+"<td>"+count+"</td>");
out.println("<td>"+sequence+"</td>"+"</tr>");
sequence=latter+aprevious;
aprevious=latter;
latter=sequence;
}
%>
</table>
代码解析:
这个地方
输出的是这里
然后for循环里面:
count=aprevious+latter意思是让前面两个数增加生成新的数字,然后aprevious=latter是让aprevious保留前面的那个数latter=sequence(保留新的数字)方便下一次循环的时候让
latter参与运算。
例如
当count在for循环外面等于1的时候,进入循环,count++先运算后相加,
这时候输出对应的项数和数列,然后,再通过前面的数和后面的数相加生成新的第三个数,保留前面的数和第三个数,再次循环。