解题思路:用两个函数,分别表示奇数和偶数的和,需要注意的是for循环里,i需要定义成double类型的,否则默认转换成int之后,最后的结果为0
代码:public class Main1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
int n=input.nextInt();
if(n%2==0){
System.out.println(evenSum(n));
}else{
System.out.println(oddSum(n));
}
}
public static double oddSum(int n){//奇数和
double sum=1.0;
for(double i=1;i<n;i=2*i+1){
sum+=1/i;
}
return sum;
}
public static double evenSum(int n){//偶数和
double sum=1/2;
for(double i=2;i<n;i=i*2){
sum+=1/i;
}
return sum;
}