黑马程序员技术交流社区

标题: 哪位高手 看下这题 求 2/1+3/2+5/3+8/5+13/8…..前20项之和? [打印本页]

作者: 王小丑    时间: 2013-1-26 18:17
标题: 哪位高手 看下这题 求 2/1+3/2+5/3+8/5+13/8…..前20项之和?
本帖最后由 张向辉 于 2013-1-27 13:59 编辑

1. 求 2/1+3/2+5/3+8/5+13/8…..前20项之和?



class Sum{

public static void main(Sting[] args){

double sum=0;

double fenZi=2.0, fenMu=1.0;    //初始的分子 (fenZi)=2,分母(fenMu)=1

for(int i=1; i<=20; i++){

sum += fenZi / fenMu ;

fenMu = fenZi;           //下一项的分母 = 上一项的分子

fenZi += fenMu;         //下一项的分子 = 上一项的分子加分母

}

System.out.println(“sum= “sum);

}

}



哪位高手看一下 那一个地方出错了 我连续运行了还几次 为什么运行不出来
作者: 张世钦    时间: 2013-1-26 18:32
本帖最后由 zhangshisk 于 2013-1-26 19:10 编辑

我都没细看,发现有点问题
main(String[] args)----------这里写错了
最后那个输出语句少了个连接符+
System.out.println("sum="+sum);

修改后的代码:                  最后的结果是21.0
class Sum
{
        public static void main(String[] args)
        {
                double fen_zi = 2;
                double fen_mu = 1;
                double sum = 0;
                for (int x = 0;x<20 ;x++)
                {
                        sum += fen_zi/fen_mu;
                        fen_zi +=fen_mu;
                        fen_mu = fen_zi;
                }
                System.out.println("sum="+sum);
        }
}

作者: Gaara    时间: 2013-1-26 18:34
我也是个新手  但貌似你这里有很多错误.........1)public static void main(String[] args)
2)double sum=0.0;
3)System.out.println("sum="+sum);

完事后应该能运行了   但貌似 达不到你要的要求。。。
作者: Gaara    时间: 2013-1-26 19:22
class Sum
{
        public static void main(String args[])
      {
        double sum=0.0;
        double fenzi=2.0;
        double fenmu=1.0;
        for(int i=1;i<=20;i++)
        {
          sum+=fenzi/fenmu;
          double x=fenzi;
          fenzi=fenzi+fenmu;
          fenmu=x;

          }
           System.out.println("sum="+sum);

        }
}
我也研究下  ,因为都是新手  我也不知道他对不对啊  但出结果了。。。。。
作者: 黑马张英涛    时间: 2013-1-26 19:35
本帖最后由 黑马张英涛 于 2013-1-26 21:52 编辑

1. 求 2/1+3/2+5/3+8/5+13/8…..前20项之和?

class Sum{
public static void main(Sting[] args){
double sum=0;
double fenZi=2.0, fenMu=1.0;    //初始的分子 (fenZi)=2,分母(fenMu)=1
for(int i=1; i<=20; i++){
sum += fenZi / fenMu ;
//fenMu = fenZi;          你这两行代码有问题,你把分子附给了分母
//fenZi += fenMu;
       那么你这行代码实际就是分子=分子+分子
//改成这样就行了
fenZi=fenZi+fenMu;
fenMu=fenZi-fenMu;

}
System.out.println(“sum= “+sum);
}
}
结果为32.66026079864164
作者: 涂春保    时间: 2013-1-26 21:15
每次差一步步啊,还是提一下吧,你有个小错误,最后的输出sum前加个+,还有你的代码里面赋值错误了,应该调过来。
作者: 谢毅    时间: 2013-1-26 21:30
int fenzi = 2, fenmu = 1;
                int sum = 0;
                for (int i = 1; i <= 20; i++) {
                        sum += fenzi / fenmu;
                        int temp = 0;
                        temp = fenzi;
                        fenzi = fenzi + fenmu;
                        fenmu = temp;
                }
作者: 李跃达    时间: 2013-1-26 21:54
public class day4_3{
public static void main(String[] args ){
  Scanner input = new Scanner(System.in);
  int n = input.nextInt();
  int i = 1,j = 2,temp=0;
  double sum = 0.0;
  for( int t = 1;t < n;t++){
   System.out.println(j*1.0/i);
      temp = i;
   i = j;
   j += temp;
   sum += j*1.0/i;   
  }
  System.out.println("前"+n+"项之和为:"+sum);   
}
}
这个应该可以 你试试


作者: 黑马-小龙    时间: 2013-1-26 22:10
你的代码是不是错了
System.out.println(“sum= “sum);少了个+连接符

作者: 王小丑    时间: 2013-1-27 05:21
多谢大家指教 愿我们一起进步
作者: 范天成    时间: 2013-1-27 14:04
本帖最后由 范天成 于 2013-1-27 14:09 编辑

楼主有四处错误:


class Sum{

public static void main(Sting[] args){//String

double sum=0;

double fenZi=2.0, fenMu=1.0;    //初始的分子 (fenZi)=2,分母(fenMu)=1

for(int i=1; i<=20; i++){

sum += fenZi / fenMu ;

fenMu = fenZi;           //下一项的分母 = 上一项的分子

fenZi += fenMu;         //下一项的分子 = 上一项的分子加分母//此处分母其实已经是分子的值了。

}

System.out.println(“sum= “sum);//里面的双引号用的格式不对,切换到英文格式,sum和字符串之间少了个连接符:+

}

}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2