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日

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能