算法-为什么两个的结果误差那么大??

问题描述

为什么两个的结果误差那么大??

package com.sthpu.java1;
/**

  • 求e
  • e=1+1/1!+1/2!+....
  • /
    public class Practice1 {
    public static void main(String[] args){
    double e=1.0;
    double a=1.0;
    for(int i=1;i<30;i++){
    a=a/i;
    e=e+a;
    }
    System.out.println("e="+e);
    }
    }
    输出结果是:2.71828182845
    package com.sthpu.java1;
    /
    *
  • e=1+1/1!+1/2!+....
  • */
    public class Practice1_1 {
    public static void main(String[] args){
    double e=1.0,a=1.0;
    //int s=1,n=1,b=0;
    double s=1.0,n=1.0,b=0.0;
    while(a>=1e-6){
    b=n;
    while(n>0){
    s=s*n;
    n=n-1;
    }
    a=1.0/s;
    e=e+a;
    n++;
    n=++b;
    }
    System.out.println(e);
    }
    }
    输出结果2.5868345

解决方案

你的程序里无意义的语句太多了。
我用C写了一遍,你参考一下呢:
结果图:
程序:

    double e=1.0,a=1.0;
    double s=1.0,n=1.0,b=0.0;
    while(a>=1e-6) {
//      b = n;
/*      while(n>0) {
            s=s*n;
            n=n-1;   Meaningless
        }           */

        a = 1.0/s;
        e = e + a;
        n++;
        s = s * n; //New
    //  n=++b;   Meaningless
    }
    printf("e = %fn",e);
    return 0;

解决方案二:

a=a/i
->a=a/(double)i

时间: 2024-08-02 07:12:51

算法-为什么两个的结果误差那么大??的相关文章

算法 正则 java 交集-求算法 判断两个正则表达式是否存在交集

问题描述 求算法 判断两个正则表达式是否存在交集 求算法 判断两个正则表达式是否存在交集,最好java的 十分感谢

设计一个算法完成两个超长正整数的加法

问题描述 设计一个算法完成两个超长正整数的加法 要求实现函数: void AddLongInteger(char * pcAddend, char * pcAugend, char * pcAddResult); 输入参数: char * pcAddend:加数 char * pcAugend:被加数 char * pcAddResult:加法结果 返回值:无 我设计了一个函数 void AddLongInteger(char * pcAddend, char * pcAugend, char

jquery-通过父,子关系标签输出内容,用jQuery和js选择器两种方式,头已大,脑已炸!

问题描述 通过父,子关系标签输出内容,用jQuery和js选择器两种方式,头已大,脑已炸! <head> <script type=""text/javascript"" src=""js/jquery-1.8.3.js""></script> <script type=""text/javascript""> function jianc

求解-分析俩段代码else的最后两句是干什么?求大神指点

问题描述 分析俩段代码else的最后两句是干什么?求大神指点 下边俩段代码,else里的最后两句为什么他俩不一样啊?第一段代码else的最后两句是干什么? 第二段代码else的最后两句是干什么? public String getList() throws Exception { quZhengGuiZeList = dao.getList(TrainingOrCompetitionID); if(quZhengGuiZeList.size()>0){ quZhengGuiZe=quZhengG

至少有两个零售业态会很大:苏宁和阿里

之前虎嗅的报道<弘毅首度回应:我们为什么"逆市"投资苏宁?>,赵令欢表示, "前几天苏宁股价又创新低,这事我们关心,但是管不着."时隔三日之后,有柳传志的肯定,赵令欢的态度更加坚决:苏宁电器(002024,股吧)是其"占中国电商行业便宜最好的机会".联想控股董事长.弘毅投资董事长柳传志也首度"声援","我作为LP(出资人)代表,非常支持.我问赵令欢是不是确实看准确了?张近东是不是了解透了?赵令欢说有一个专

黑盒测试-211小硕,两个offer比较,望大神指点迷津

问题描述 211小硕,两个offer比较,望大神指点迷津 本人今年毕业,211小硕,女生,先收到两个offer,不知如何选择,望大家帮我分析分析 1.上海贝尔(阿尔卡特朗讯),做无线系统测试 2.苏州甲骨文,头衔是QA,主要是做黑盒测试 解决方案 苏州吧,甲骨文挺好啊,无线测试有辐射!!! 解决方案二: 难道是苏州大学的研究生?嘿嘿 推荐甲骨文 解决方案三: 211研究生做测试有点大材小用吧?上海贝尔是我们公司的客户,做无线产品.我觉得主要是看楼主是走技术路线还是管理路线?如果比较开朗的话,我觉

java用openoffice处理excel转pdf两个页面问题,望大神帮忙!

问题描述 java用openoffice处理excel转pdf两个页面问题,望大神帮忙! 有大神用过openoffice处理过excel吗? 第一个问题就是sheet页,多个的话会每页每页的显示,能做的像excel一样的吗?多页并列的显示,可以切换. 第二个问题就是每个页,如果列比较多,也会换行显示,能实现它不换行显示吗? 解决方案 同问,还有如何更改默认A4纸显示?

图片-悬赏40分 全英文的介绍的简单的两个c语言编程 求大神帮忙解答

问题描述 悬赏40分 全英文的介绍的简单的两个c语言编程 求大神帮忙解答 解决方案 #include int main() { int count; printf("输入"*"的个数:"); scanf("%d",&count); for(int i=0;i<=count;i++) { for(int j=0;j<i;j++) { printf("*"); } printf("n");

java- paintComponent(Graphics g)会连续调用两次,想问各位大神什么原理?

问题描述 paintComponent(Graphics g)会连续调用两次,想问各位大神什么原理? 在paintComponent()里面加多一个输出语句,可以发现发现protected void paintComponent(Graphics g)会连续调用两次,想问各位大神什么原理? import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.Graphics; public class DrawArcs ex