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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张向辉 于 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);

}

}



哪位高手看一下 那一个地方出错了 我连续运行了还几次 为什么运行不出来

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1 赞一个!

查看全部评分

10 个回复

正序浏览
本帖最后由 范天成 于 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和字符串之间少了个连接符:+

}

}
回复 使用道具 举报
王小丑 来自手机 中级黑马 2013-1-27 05:21:41
10#
多谢大家指教 愿我们一起进步
回复 使用道具 举报
你的代码是不是错了
System.out.println(“sum= “sum);少了个+连接符
回复 使用道具 举报
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);   
}
}
这个应该可以 你试试

评分

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

查看全部评分

回复 使用道具 举报
谢毅 中级黑马 2013-1-26 21:30:12
7#
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;
                }
回复 使用道具 举报
每次差一步步啊,还是提一下吧,你有个小错误,最后的输出sum前加个+,还有你的代码里面赋值错误了,应该调过来。
回复 使用道具 举报
本帖最后由 黑马张英涛 于 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

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1 赞一个!

查看全部评分

回复 使用道具 举报
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);

        }
}
我也研究下  ,因为都是新手  我也不知道他对不对啊  但出结果了。。。。。

评分

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

查看全部评分

回复 使用道具 举报
我也是个新手  但貌似你这里有很多错误.........1)public static void main(String[] args)
2)double sum=0.0;
3)System.out.println("sum="+sum);

完事后应该能运行了   但貌似 达不到你要的要求。。。
回复 使用道具 举报
本帖最后由 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);
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马