卡是昨晚的康桥
求1/1-1/2+1/3-1/4+1/5...的三种方法作为启示
其中,关于for循环,循环内语句可以为空,可以用 , 连接放置在循环条件内或语句块内
int a = x.nextInt();
double sum = 0;
int sign = 1;
for (int i = 1; i <= a; i++) { // 1
sum += sign * (1.0 / i);
sign = -sign;
}
for (int i = 1; i <= a; i++, sign = -sign) {
sum += sign * (1.0 / i);
}
//放置在循环条件内
for (int i = 1; i <= a;) {
sum += sign * (1.0 / i);
i++;
sign = -sign;
}
//放置在语句块内
for (int i = 1; i <= a; i++) { // 2
if (i % 2 == 1)
sum += 1.0 / i;
else
sum -= 1.0 / i;
}
for (int i = 1; i <= a; i++) { // 3
sum += 1.0 / i * Math.pow(-1, i + 1);
}
System.out.println((int) (sum * 100 + 0.5) / 100.0);