dabocaiqq
2020-05-21 14:55
采纳率: 66.6%
浏览 1.2k

高分悬赏:如何利用Java语言计算1+1/3-1/5+1/7-1/9+1/11...

高分悬赏:如何利用Java语言计算1+1/3-1/5+1/7-1/9+1/11...

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 毕小宝 2020-06-07 10:17
    已采纳

    首先,分析表达式规则,抽取计算公式,分母是奇数 2N-1,符号是 (-1) 的 (N+1)次方

    f(N)= (-1)的(n+1)*1/(2n-1) 
    Sum = f(1)+f(2)....+f(N)
    

    伪代码:

    sum=0;
    for(int n=1;n<num;n++){
       sum+= pow(-1,(n+1))*(1/(2n-1)
    }
    
    

    这类算法题,主要就是找公式规律。

    已采纳该答案
    4 打赏 评论
  • 爱吃血肠 2020-05-21 19:39
    package com.mtons.mblog.leetcode;
    
    /**
     * 如何利用Java语言计算1+1/3-1/5+1/7-1/9+1/11...
     */
    public class SumNum {
    
        public static double sum(int n){
            double sum = 1.00;
            for (int i=2;i<=n;i++){
                if(i % 2==0){
                    sum = sum + (1.0/(i*2-1));
                }else{
                    sum = sum - (1.0/(i*2-1));
                }
    
            }
            return sum;
        }
    
        //以下为测试代码
        public static void main(String[] args) {
            System.out.println(sum(6));
    
            double dd = 1.0+1.0/3-1.0/5+1.0/7-1.0/9+1.0/11;
            System.out.println(dd);
            System.out.println(1.0/3);
            System.out.println(1.0/5);
            System.out.println(1.0/7);
            System.out.println(1 % 2);
        }
    
    
    
    }
    
    
    2 打赏 评论
  • public class Test {
    public static void main(String[] args) {
    zhidaoint num = 10;
    int sign = 1;
    float sum = 0f;
    int x = 1;
    for (int i = 0; i < num; i++) {
    sum = sum + sign * (1.0f / x);
    x = x + 2;
    sign = sign * (-1);
    }
    System.out.println(sum);
    System.out.println(1+1.0/3-1.0/5+1.0/7-1.0/9+1.0/11...);
    }
    }

    打赏 评论
  • ZhouSiAn 2020-05-21 16:12

    public static void main(String[] args) {
    Scanner cin = new Scanner(System.in);
    System.out.println("请输入数字:");
    int num = cin.nextInt();
    int signal = 1; //标记正负
    float sum = 1; //初始值置为1,解决正负号的一致性问题
    for (int i = 0,x = 3; x <= num; i++) {
    sum = sum + signal * (1.0f / x);
    System.out.println("正负:" + signal + ";数据:1/"+ x);
    x = x + 2;
    signal = signal * (-1);
    }
    System.out.println("计算结果为:" + sum);
    }

    打赏 评论

相关推荐 更多相似问题