题目:
计算1-1/3+1/5-1/7+1/9....前1000项的和我写的是:
long sum=1,t=1;
for(int i=1;i<=99;++i)
{
    t=t+2;
    if(i%2==1)
       sum=sum-1/t;
    else
       sum=sum+1/t;
}
这样对吗?

解决方案 »

  1.   

    sum应该是float吧,其他应该没有问题
      

  2.   

    思路正确如果从运行效率的角度来看呢,
    t=t+2 (或者 t+=2)这句比较出彩,效率不错。比t=i*2+1效率好
    另外如果想省掉if语句的话,可以分两步做,先-奇数项,再+偶数项这样。
      

  3.   

    - -|||看大家这问题和回答,csdn里混的就这么多小白么.楼主问问题也不认真些,这样的问题自己编译运行一下不就知道了,前1000项为什么代码里只有100项?sum居然用long...对于long t,居然用1/t
      

  4.   

    JAVA软件工程师1、  精通JAVA基础,喜欢研究JAVA中的深层次问题,经常为了攻克一个问题茶不思饭不想。掌握JAVA的常用命令。理解JAVA中的继承,封装,多态(最基本要求。最好是可以在实际应用中使用)。熟练使用JAVA的IO,多线程,了解socket编程(这个只需要基本的应用就可以了,不必非得大师级的)。
    2、  精通JSP,servlet, filter的使用及配置(必须精通,工作中不能在这上浪费时间)。
    3、  熟悉struts应用。深入了解MVC模式。
    4、  熟练Hibernate的使用。(熟练并不是指应用HibernateSynchronizer这样的工具,而是要会手工写的哦)。
    5、  熟练SQL,可以熟练的运用SQL操作DB(这个没什么可说的,注意看SQL,不是HQL)。
    6、  熟练使用tomcat配置、部署(这个你一定会吧)。
    7、  熟悉spring者优先。
    qq  283765999
    msn [email protected]
    地点: 北京中关村太平洋附近
      

  5.   

    题目:
    计算1-1/3+1/5-1/7+1/9....前1000项的和
    -------------------------------------for(int i=1;i<=99;++i)
    别的就不看了
      

  6.   

    - -|||看大家这问题和回答,csdn里混的就这么多小白么.楼主问问题也不认真些,这样的问题自己编译运行一下不就知道了,前1000项为什么代码里只有100项?sum居然用long...对于long t,居然用1/t===============================
    为什么不能用long?
      

  7.   

    题目:
    计算1-1/3+1/5-1/7+1/9....前1000项的和我写的是:
    float sum=0,x;
    int sign=1
    for(int i=1;i<=1000;i++)
    {
        x=1/(2*i-1)*sign;
        sum+=x;
        sign=-sign;
    }
    这样应该可以的
      

  8.   

    djkhym(兵卒)你这样做也可以啊~你是用每次循环来变+和-
      

  9.   

    -|||看大家这问题和回答,csdn里混的就这么多小白么.楼主问问题也不认真些,这样的问题自己编译运行一下不就知道了,前1000项为什么代码里只有100项?sum居然用long...对于long t,居然用1/t===============================
    为什么不能用long?

    long是长整形的吗
      

  10.   

    长整型为什么就不能用在这呢?
    应该用什么?float?
      

  11.   

    long sum=1,t=1;
    for(int i=1;i<=99;++i)
    {
        t=t+2;
        if(i%2==1)
           sum=sum-1/t;
        else
           sum=sum+1/t;
    }
    这段代码算出的结果是多少?有人验证过吗?我试了一下,结果怎么有问题。
      

  12.   

    static double getDouble(double n) {
        double ret = 1;
        for (double i = 1; i < n + 1; i++) {
          if (i%2 == 1) {
            ret += 1/(2*i - 1);
          } else {
            ret -= 1/(2*i - 1);
          }
        }
        return ret;
      }
      

  13.   

    long sum=1,t=1;
    for(int i=1;i<=999;++i)
    {
        t=t+2;
        if(i%2==1)
           sum=sum-1/t;
        else
           sum=sum+1/t;
    }