import java.util.Scanner;
public class Test07 {
static int He(int n) {
int sum=0;
int x=0,y=0,a;//x为奇数和,y为偶数和
if(n%2==1) {//1/1+1/3+1/5+..1/n+(-1)*(1/2+1/4+1/6+..1/n-1)
for(a=1;a<=n;a+=2) {//a为分母
int z = 1/a;
x += z;
}
for(a=2;a<=n-1;a+=2) {
int c = 1/a;
y = (-1)*(y+c);
}
sum=x+y;
}
else if(n%2==0) {//1/1+1/3+1/5+..1/n-1+-1*(1/2+1/4+1/6+..1/n)
for(a=1;a<=n-1;a+=2) {//a为分母
int z = 1/a;
x += z;
}
for(a=2;a<=n;a+=2) {
int c = 1/a;
y = (-1)*(y+c);
}
sum=x+y;
}
return sum;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc =new Scanner(System.in);
System.out.println("输入:");
int x=sc.nextInt();
System.out.println(He(x));
}
}
编写一个方法,用来计算并输出:1-1/2+1/3-1/4+...+(-1)^(n-1) *1/n,其中n是用户输入的正整数。
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
_雪菜肉丝面_ 2022-03-15 09:51关注我的思路:
1,递归:从N直到1。
2,若当前为偶数,则减。奇数加。实现中。。。实现完成!
本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报 编辑记录解决 1无用