| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 751 人关注过本帖
标题:非递归方法解决递归问题帖子中给的代码的疑问。
取消只看楼主 加入收藏
shenyun345
Rank: 2
等 级:论坛游民
帖 子:32
专家分:10
注 册:2009-7-13
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:2 
非递归方法解决递归问题帖子中给的代码的疑问。
关于非递归方法解决递归问题
请用非递归方式解决以下递归问题:
f(1)=1;
f(2)=1;
f(n)=f(n-1)+f(n-2);

版主给出的代码
import java.util.Scanner;
public class fibonacci {

      public static void main(String args[]){
        Scanner scan = new Scanner(System.in);
       int max=scan.nextInt();
       int[] a=new int[max];
          a[0]=1;
          a[1]=1;
         System.out.print(a[0]+" "+a[1]+" ");
       for(int n=2;n<max;n++){

         a[n]=a[n-1]+a[n-2];
      
       System.out.print(a[n]+" ");
       }
   
      }
}
for循环中
应该求不出a[max]的值吧,按照代码是求不出,就拿max=5来说,
在循环中n=4时满足
n=5时就跳出循环了,就不会显示a[5]的值5了
不过我在运行的时候结果却显示了5
不懂为什么会算出a[5]的值,
还有,我改了一下代码,将for循环中改成a<=max,运行就会出现
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 帖子 递归 疑问 代码 
2010-03-31 18:05
shenyun345
Rank: 2
等 级:论坛游民
帖 子:32
专家分:10
注 册:2009-7-13
收藏
得分:0 
很疑惑,为什么能得出a[5]的值,按照for循环中的代码应该是得不出a[5]的值的。
2010-04-01 03:42
shenyun345
Rank: 2
等 级:论坛游民
帖 子:32
专家分:10
注 册:2009-7-13
收藏
得分:0 
恩,谢谢,晓得了。用的数组。
2010-04-01 12:13
快速回复:非递归方法解决递归问题帖子中给的代码的疑问。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045985 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved