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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package Text.cn;

/**
* @author mmt
*1.有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和
*/
public class TextDome {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                //我们可以发现,这个数列的分子和分母都是属于斐波那契数列
                double num = 0.0;
                int i = 3;
                while(i <= 22){
                        num =mothed1(i)/mothed1(i-1);
                        i++;
                        System.out.println(num);
                }
                System.out.println(num);
        }
       
        public static int mothed1(int num){
                if(num == 1)
                        return 1;
                if(num == 2)
                        return 1;
                return mothed1(num - 1) + mothed1(num -2);
        }

}

评分

参与人数 1技术分 +1 收起 理由
张勇1993 + 1 神马都是浮云

查看全部评分

8 个回复

倒序浏览
仔细看了你的代码,我先指出你的错误把
  1. public class TextDome {
  2.         public static void main(String[] args) {
  3.                 //我们可以发现,这个数列的分子和分母都是属于斐波那契数列
  4.                 double num = 0.0;
  5.                 int i = 3;//这个不能为int型,因为int型作为分子或分母运算得到的结果也是int型
  6.                 while(i <= 22){
  7.                         num =mothed1(i)/mothed1(i-1);//num应该要和进行累加,得到的结果才是所求和
  8.                         i++;
  9.                         System.out.println(num);
  10.                 }
  11.                 System.out.println(num);
  12.         }
  13.         
  14.         public static int mothed1(int num){//这里接受的和返回的都应该是double类型
  15.                 if(num == 1)
  16.                         return 1;
  17.                 if(num == 2)
  18.                         return 1;
  19.                 return mothed1(num - 1) + mothed1(num -2);//这一句无论前面if是否执行,这个都会执行
  20.         }

  21. }
复制代码

评分

参与人数 1技术分 +2 收起 理由
张勇1993 + 2 很给力!

查看全部评分

回复 使用道具 举报
正确的代码应该是这样的:
  1. /**
  2. * @author mmt
  3. *1.有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和
  4. */
  5. public class TextDome{

  6.         /**
  7.          * @param args
  8.          */
  9.         public static void main(String[] args) {
  10.                 // TODO Auto-generated method stub
  11.                 //我们可以发现,这个数列的分子和分母都是属于斐波那契数列
  12.                 double num = 0.0;
  13.                 double i = 3;
  14.                 while(i <= 22){
  15.                         num+=mothed1(i)/mothed1(i-1);
  16.                         i++;
  17.                         System.out.println(num);
  18.                 }
  19.                 System.out.println(num);
  20.         }
  21.         
  22.         public static double mothed1(double num){
  23.                 if(num == 1.0||num == 2.0)
  24.                    return 1.0;
  25.                else
  26.                                    return mothed1(num - 1.0) + mothed1(num -2.0);
  27.         }

  28. }
复制代码

点评

很好。。。  发表于 2013-7-3 08:49
回复 使用道具 举报
谢谢妹子,受教了
回复 使用道具 举报
神之梦 来自手机 金牌黑马 2013-7-3 06:48:28
报纸
杨晓燕 发表于 2013-7-2 19:18
正确的代码应该是这样的:

哇哇,好厉害!赞一个
回复 使用道具 举报
神之梦 发表于 2013-7-3 06:48
哇哇,好厉害!赞一个

:#又让你们看笑话了

点评

确实是厉害啊  发表于 2013-7-3 21:26
回复 使用道具 举报
杨晓燕 发表于 2013-7-3 08:36
又让你们看笑话了

厉害.....:victory:
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马