求一个 计算1-1/3+1/5+.....的前1000项的和的程序代码

解决方案 »

  1.   

    +或-使用pow(-1,n)得到,分母使用n*2-1得到
      

  2.   

    int sum = 2/3;
    int j = 3;
    for(int i = 0; i < 1000; i++){
        j = j + 2;
        suu = sum + 1/j;   
    }
      

  3.   

    import java.math.*;//计算1-1/3+1/5+.....的前1000项public class Sum1000 {
    static BigDecimal divided;
    static BigDecimal divid;
    static BigDecimal quotient;
    static MathContext mc = new MathContext(10);
    static BigDecimal sum = new BigDecimal("1");

    public static void main(String args[]){
    for(int i = 2; i<=1000; i++){
    divided = new BigDecimal(Math.pow(-1, i-1));
    divid = new BigDecimal((2*i-1));
    quotient = divided.divide(divid, mc);
    sum = sum.add(quotient);
    }
    System.out.println(sum);
    }
    }
      

  4.   

    上面精度都损失掉了,不能做不能整除的除法。最准确的是分别得到分子和分母。按照a/b+c/d=(ad+bc)/bd的规则就好了,中间加一个分子分母约最大公约数的过程
      

  5.   

    试试这个:
    package practice;public class CountSum {
    public static void main(String[]args){
    double sum = 0;
    double a;
    for(int i=0;i<1000;i++){
    a=Math.pow(-1, i)*1/(double)(i+1);
    sum+=a;

    }
    System.out.println(sum);
    }}
      

  6.   


    //int sum =2/3; 明显是错了嘛!
    //起码要 double sum = 2/3;
    double sum = 0;
    int d  = -1;
    for(int i =0; i < 1000; i ++) {
        d = -d;
        sum += 1.0*d/(2*i+1);
    }
      

  7.   

    Double sum=0;
    int j=3;
    int e=-1;  //为了弄负数 。 
    for(int i=0;i<=1000;i++)
    {
       j=j+2;
       sum=sum+1.0*e/(2*i+1);
    }
      

  8.   


    int flag = 1; 
    float sum = 0l;
    for (int i=1; i<=1000; i++) {
        sum += i*flat/(2*i-1);
        flag *= -1;
    }