A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Akm 黑马帝   /  2013-5-23 14:03  /  2447 人查看  /  19 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Akm 于 2013-5-24 07:01 编辑

描述:输出斐波那契序列
输出: 1 2 3 5 8 13 21 34
要求:使用循环
提示:  前两个数相加和是第三个数字。


楼下的答案都很给力啊




评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

19 个回复

倒序浏览
百度上很多的、、应该是0,1,1,2,3,5...
回复 使用道具 举报
public class Demo{
       
        public static void main(String[] args) {
                //需求 找到100内的斐波那契序列
                //定义一个数组
                int[] number = new int[100];
                for(int i = 1;i<101;i++){
                        number[i-1] = i;
                }
               
                //定义存储集合
                ArrayList<Integer> result = new ArrayList<Integer>();
                //开始循环
                for(int i = 0;i<100;i++){
                        //先输出前两个数
                        if(i==0 || i==1){
                                result.add(number[i]);
                                continue;
                        }else{
                                if((number[i] == result.get(result.size()-1)+result.get(result.size()-2))){//前两个数相加和是第三个数字。
                                        result.add(number[i]);
                                }
                        }
                }
                System.out.println(result);
        }
}

点评

哥们你数组开大了。。。。  发表于 2013-5-23 19:46

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
这样应该就行了。
  1. public class Fibonacci {
  2.         static int fib(int n) {
  3.                 if(n < 2) return 1;
  4.                 return (fib(n - 2) + fib(n - 1));
  5.         }
  6.         public static void main(String[] args) {
  7.                 int k = 10;
  8.                 System.out.println("First " + k + " Fibonacci number(s): ");
  9.                 for(int i = 0; i < k; i++)
  10.                         System.out.print(fib(i)+"\t");
  11.         }       
  12. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
用了一下递归调用,代码如下:
  1. public class Fib_ra {

  2.         // 使用递归方法
  3.         private static int getFibo(int i) {
  4.                 if (i == 1 )
  5.                         return 1;
  6.                 if (i == 2)
  7.                         return 2;
  8.                 else
  9.                         return getFibo(i - 1) + getFibo(i - 2);
  10.         }

  11.         public static void main(String[] args) {
  12.                 System.out.println("斐波那契数列为:");
  13.                 for (int j = 1; j <= 8; j++) {
  14.                         System.out.print(getFibo(j) + "\t");
  15.                        
  16.                 }
  17.         }

  18. }
复制代码
打印的结果为:

斐波那契数列为:
1        2        3        5        8        13        21        34

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 不错

查看全部评分

回复 使用道具 举报
Sword 发表于 2013-5-23 15:01
用了一下递归调用,代码如下:打印的结果为:

斐波那契数列为:

版主,我只想说为什么我的很多回答都没给技术分?我不想为了两个技术分卡着不能进行下一步测试,同时,我也不想纯粹为挣技术分而问问题。
回复 使用道具 举报
无妄无涯 发表于 2013-5-23 16:02
版主,我只想说为什么我的很多回答都没给技术分?我不想为了两个技术分卡着不能进行下一步测试,同时,我 ...

那是因为你没有贿赂版主啊
回复 使用道具 举报
HM张博文 发表于 2013-5-23 16:19
那是因为你没有贿赂版主啊

你太腹黑了,如果我是版主,直接就回“ID还想要吗?”{:3_68:}
回复 使用道具 举报
Sword 金牌黑马 2013-5-23 16:56:15
9#
本帖最后由 Sword 于 2013-5-23 18:25 编辑
无妄无涯 发表于 2013-5-23 16:02
版主,我只想说为什么我的很多回答都没给技术分?我不想为了两个技术分卡着不能进行下一步测试,同时,我 ...

你可以把应该加分的帖子反映到这里,符合加分规则一定会加的:
http://bbs.itheima.com/thread-50255-1-1.html

也可能是斑竹们还没有看到,着这里表示一下歉意,请理解一下,谢谢:)

我看了一下你的回帖,只要是合理的基本都加上技术分了(最近几个小时的除外),有些回答的太简单或者不符合加分要求就没有加。

希望你仔细看一下上面技术分的集中处理贴,谢谢合作
回复 使用道具 举报
Sword 金牌黑马 2013-5-23 16:56:57
10#
HM张博文 发表于 2013-5-23 16:19
那是因为你没有贿赂版主啊

不用,不用,只要符合规则都会给加分的,哈哈
回复 使用道具 举报
int sum(int n){
if(n==1) return 1;
else if(n==2) return 1;
else if(n>=3) return sum(n-1)+sum(n-2);
}

点评

哥们强??  发表于 2013-5-23 19:47

评分

参与人数 1技术分 +1 收起 理由
刘胜寒 + 1

查看全部评分

回复 使用道具 举报
陈潜 发表于 2013-5-23 14:41
public class Demo{
       
        public static void main(String[] args) {

没有开大啊。。前面一个只是说在1到100内找这个序列 后面的ArrayList才是用来存序列的。。。。

点评

我还能骗你不。。这个数列的第九十九个,你给哥们求出来,不能使用long 不能使用BigDecimal,我给你加三分。。 就这本帖回帖就行了。。。。  发表于 2013-5-24 00:52
回复 使用道具 举报
就在本帖回。。要求你看到了把不能使用long 类型的和BigDecimal BigInteger. 三分啊哥们,加油
回复 使用道具 举报
楼主你好,如果问题以解决,请修改分类,谢谢合作。

点评

Akm
好得马上  发表于 2013-5-24 07:00
回复 使用道具 举报
刘胜寒 发表于 2013-5-24 00:53
就在本帖回。。要求你看到了把不能使用long 类型的和BigDecimal BigInteger. 三分啊哥们,加油 ...

。。寒哥 你真心看错了 我传入的一个数组是number[100],里面存放的是1到100,,我是要在100的范围内找出符合条件的序列,不是要找这个序列的100个。。。而我下面用了ArrayList 也是因为我不知道100以内这个 鸟序列 到底有几个数符合条件,不知道长度,所以没用固定长度的数组。
寒哥息怒~~~
息怒了来点分,最近急缺。。。。
回复 使用道具 举报
早知道就直接找了  不传参了。。。。

点评

急缺,,最近手头紧啊  发表于 2013-5-24 02:06
回复 使用道具 举报
Akm 黑马帝 2013-5-26 18:15:16
17#
薛淑凯 发表于 2013-5-23 14:09
百度上很多的、、应该是0,1,1,2,3,5...

是啊 是啊,  要求输出1 2 3 5 8 13 21 34 这几项而已, 比百度上的简单许多啊, 你会编吗?
回复 使用道具 举报
算法还是不太明白~
回复 使用道具 举报
Akm 发表于 2013-5-26 18:15
是啊 是啊,  要求输出1 2 3 5 8 13 21 34 这几项而已, 比百度上的简单许多啊, 你会编吗? ...

楼上的不是已经写的很好了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马