public class Add
{
public static void main(String[] args)
{
int flag=1,i=3;//flag表示项数
double sum=1.0;
while (flag<10000) //while循环只加到9999项
{
sum -= 1.0/i - 1.0/(i+2);
flag += 2;
i+=4;
}
sum -= 1.0/(i+2);//加上第10000项
System.out.print(sum);
}
}
自己特地写的 解释很清晰...
int i,j,sum=0;
for(i=1,j=1;j<=10000;i=i+2,j++){
sum=sum+Math.pow(-1,j+1)/i;
}
或
int i,j,sum=0;
for(i=1,j=1;j<=10000;i=i+2,j++){
if(j%2) sum=sum+1/i;
else sum=sum-1/i;
}
double sss(int n){
if(n ==1) return 1;
if(n%2==0) return sss(n-1);
else{
int sign = n/2;
if(sign%2 == 0) return sss(n-2) + 1.0/n;
else return sss(n-2)-1.0/n;
}
}
在主函数里调用这个method sss(1000)
double result = 0;
double temp = 0;
for (int i=0; i<3; i++) {
temp = (i%2==0?1:-1) / (i*2+1);
result += temp;
}
System.out.println("结果为" + result);