编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n

import java.util.*;
public class Num39 {
public static double fn1(int n){
double sum=0,p;
n=2;
for(int i=1;i<=n/2;i++){
p=1/n;
sum=sum+p;
n=n+2;
}
return sum;
}
public static double fn2(int n){
double sum=0,p;
n=1;
for(int i=1;i<=(n+1)/2;i++){
p=1/n;
sum=sum+p;
n=n+2;
}
return sum;
}
public static void fn3(int n){
if(n%2==0)
{ System.out.println(fn1(n));
}
else
{ System.out.println(fn2(n));}
}
public static void main(String args[]){
int n;
Scanner sc=new Scanner(System.in);
System.out.println("输入整数n:");
n=sc.nextInt();
fn3(n);

}

}
出错了 帮忙找找

奇函数偶函数都调用同一个函数:
public static double fn(int n){
double sum=0,p;
for(int i=n;i>0;i++){
p=n;
sum=sum+1/p;
n=n-2;
}
return sum;
}
PS:不保证正确,已经丢下好多年了。。。。。。你的程序里调用的函数不应该将n的值重新赋值,n是你输入的值,你可以重新定义个其他INT变量。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-16
vb
相似回答