| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 751 人关注过本帖
标题:非递归方法解决递归问题帖子中给的代码的疑问。
只看楼主 加入收藏
shenyun345
Rank: 2
等 级:论坛游民
帖 子:32
专家分:10
注 册:2009-7-13
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:6 
非递归方法解决递归问题帖子中给的代码的疑问。
关于非递归方法解决递归问题
请用非递归方式解决以下递归问题:
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
dadongzicool
Rank: 6Rank: 6
等 级:贵宾
威 望:11
帖 子:209
专家分:474
注 册:2009-3-20
收藏
得分:1 
LZ 眼睛果然犀利

本人出售软件专业毕业设计(包括论文,代码)题目众多,价格从优联系方式:QQ
1635008514(寻找高校代理)
2010-04-01 00:31
shenyun345
Rank: 2
等 级:论坛游民
帖 子:32
专家分:10
注 册:2009-7-13
收藏
得分:0 
很疑惑,为什么能得出a[5]的值,按照for循环中的代码应该是得不出a[5]的值的。
2010-04-01 03:42
dadongzicool
Rank: 6Rank: 6
等 级:贵宾
威 望:11
帖 子:209
专家分:474
注 册:2009-3-20
收藏
得分:3 
max = 5时 数组下标是0到4

本人出售软件专业毕业设计(包括论文,代码)题目众多,价格从优联系方式:QQ
1635008514(寻找高校代理)
2010-04-01 06:43
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:3 
回复 楼主 shenyun345
LZ搞错了吧?!
当max为5时显示:1 1 2 3 5是正确的!
n<=max当然出错:数组越界!

★★★★★为人民服务★★★★★
2010-04-01 07:49
zhuyunshen
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:212
专家分:455
注 册:2009-11-22
收藏
得分:3 
下标从0开始
2010-04-01 07:51
shenyun345
Rank: 2
等 级:论坛游民
帖 子:32
专家分:10
注 册:2009-7-13
收藏
得分:0 
恩,谢谢,晓得了。用的数组。
2010-04-01 12:13
快速回复:非递归方法解决递归问题帖子中给的代码的疑问。
数据加载中...
 
   



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

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