m0_65506053 2021-12-27 22:49 采纳率: 88.9%
浏览 38
已结题

关于#java#的问题,请各位专家解答!


//求出1-1/2+1/3-1/4+...-1/100的和
//代码一:
public class Homework08{
    public static void main(String[]args){

        double sum=0;int symbol=-1;
        for(int i=1;i<=100;i++){
            for(int b =1;b<=i;b++){
                symbol=symbol *(-1);
            }    
            sum=(1.0/i)*symbol+sum;
        }
        System.out.println("和为:"+sum);
    }
}

//代码二:(代码二部分是答案)
public class Homework08 { 

    //编写一个main方法
    public static void main(String[] args) {
        /*
        求出1-1/2+1/3-1/4…..1/100的和
        思路分析
        1. 1-1/2+1/3-1/4…..1/100 = (1/1)-(1/2)+(1/3)-(1/4)...1/100
        2. 从上面的分析我们可以看到 
        (1) 一共有100数 , 分子为1 , 分母从1-100
        (2) 还发现 当分母为奇数时,前面是 +, 当分母是偶数时,前面是-
        3. 我们可以使用 for + 判断即可完成
        4. 把结果存放到 double sum 
        5. 这里有一个隐藏的陷阱,要把 公式分子 1 写出1.0 才能得到精确的小数
         */
        
        double sum = 0;
        for(int i = 1; i <= 100; i++) {
            //判断是奇数还是偶数,然后做不同的处理
            if( i % 2 != 0) {//分母为奇数
                sum += 1.0/i;
            } else { //分母我偶数
                sum -= 1.0/i;
            }
        }

        System.out.println("sum=" + sum);
        

    }
}
  • 写回答

1条回答 默认 最新

  • 南七灵 2021-12-27 23:04
    关注
    
    public static void main(String[] args) {
    
            double sum = 0;
            int symbol = 1;
            for (int i = 1; i <= 100; i++) {
                sum = (1.0 / i) * symbol + sum;
                symbol = - symbol;
            }
            System.out.println("和为:" + sum);
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月4日
  • 已采纳回答 12月27日
  • 创建了问题 12月27日

悬赏问题

  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效