方法一:通过符号变换
public class Test05 {
public static void main(String[] args) {
double sum = 0,sum1 = 0, sum2 = 0;
for (int i = 1; i <=51; i++) {
double num = 1.0/(2*i-1);
if(i % 2 == 0) {
sum1+=num;
}else {
sum2+=num;
}
sum = sum2 - sum1;
}
System.out.println(sum);
}
}
方法二:
/*
求1-1/3+1/5-1/7+1/9...-1/99+1/101之和,并且输出结果值。
正数项:1/1 1/5 1/9 1/13 1/17.........1/101
负数项:1/3 1/7 1/11 1/15...............1/99
统一规律:分子不变永远是1,分母每次递增4
*/
public class Test{
public static void main(String[] args){
double sum1 = 0;//正数项的和
// for循环中i的作用其实就是分母,因为在递增
for(int i = 1;i < 102;i+=4){
sum1 = sum1 + 1.0 / i;//注意因为结果是浮点型的,那么这里要进行转换
}
//求负数项的和
double sum2 = 0;
for(int i = 3;i < 100;i+=4){
sum2 = sum2 + 1.0 / i;
}
double sum = 0;
sum = sum1 - sum2;//这里因为sum2其实按照题目要求是带负号的所以要拿正数项的和去减去负数项的和
System.out.println("最终的结果是.............." + sum);
}
}