m***e 发帖数: 331 | 1 【程序39】
题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时
,调用函数1/1+1/3+...+1/n
public class lianxi39 {
public static void main(String[] args) {
System.out.print("请输入一个正整数:");
Scanner s=new Scanner(System.in);
int n=s.nextInt();
sum st=new sum();
System.out.println(st.sum(n));
}
}
class sum {
public static double sum(int n) {
double total=0;
if (n%2==0) {
for (int i=2; i<=n; i+=2) {
total+=1/i;
}
} else {
for (int i=1; i<=n; i+=2) {
total+=1/i;
}
}
return total;
}
}
程序运行的时候,除了输入1,输出结果为1.0外;输入任何其他数,结果均为0.0.
似乎是子程序带入的数据是int,但输出的结果是double造成的问题。
应该怎么改?
万分感谢! | u****s 发帖数: 2186 | 2 Change 1/i to 1./i
【在 m***e 的大作中提到】 : 【程序39】 : 题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时 : ,调用函数1/1+1/3+...+1/n : public class lianxi39 { : public static void main(String[] args) { : System.out.print("请输入一个正整数:"); : Scanner s=new Scanner(System.in); : int n=s.nextInt(); : sum st=new sum(); : System.out.println(st.sum(n));
|
|