jsp用表格的形式输出斐波那契数列数列的前20项值

用表格的形式输出斐波那契数列数列的前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++先运算后相加,
这时候输出对应的项数和数列,然后,再通过前面的数和后面的数相加生成新的第三个数,保留前面的数和第三个数,再次循环。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值