for-为何输出结果一直是1.0?想要的结果是输出自然常数e的数值

问题描述

为何输出结果一直是1.0?想要的结果是输出自然常数e的数值

public class EulerNumber {
public static void main(String[] args) {
double e=1.0;
double t=1.0;
for (int i=1;factorial(i)<1e-5;i++) {
t/=i;
e+=t;
}
System.out.println(e);
}

private static long factorial(long factorial){
    if(factorial == 1){
        return 1;
    }
    return factorial * factorial(factorial-1);
}

}

解决方案

循环有问题,foctorial 方法的返回值是不可能小于1e-5的。所以直接输出了 e 的值,所以你看到的输出总是1!

解决方案二:

t/=i;
->

 t=t/(double)i;

解决方案三:

 private static double factorial(double factorial){
    if(factorial == 1){
        return 1.0;
    }
    return factorial * factorial(factorial-1);
}
时间: 2024-09-30 16:17:53

for-为何输出结果一直是1.0?想要的结果是输出自然常数e的数值的相关文章

JDK5.0新特性系列---6.格式化输出

import java.util.Date;   /**  * 使用printf输出  */ /**关键技术点  * 使用java.io.PrintStream的printf方法实现C风格的输出  * printf 方法的第一个参数为输出的格式,第二个参数是可变长的,表示待输出的数据对象  */ public class Printf {          public static void main(String[] args) {               /*** 输出字符串 ***/

表格 输出 excel 重复-点击控件把表格输出到EXCEL后,再进行操作都是表格输出到EXCEL,应该怎么解决?

问题描述 点击控件把表格输出到EXCEL后,再进行操作都是表格输出到EXCEL,应该怎么解决? 做了一个按钮LbtToExcel,点击后把表格table1的内容输出到excel.代码在下面,功能可以实现的,点击后生成了一个Excel文件.但是后面我在页面上点别的按钮,都变成了生成Excel文件,请问该如何解决?多谢指点. Protected Sub LbtToExcel_Click(ByVal sender As Object ByVal e As System.EventArgs) Handl

MSXML6.0想取两个非闭合标签中间的汉字,名字空间带XML:ID的怎么取呢

问题描述 MSXML6.0想取两个非闭合标签中间的汉字,名字空间带XML:ID的怎么取呢 想取两个非闭合标签中间的汉字? 韞 名字空间带XML:ID的怎么取呢,MSXML6.0形式的? MSXML2::IXMLDOMDocument2Ptr pDocument; HRESULT hr = pDocument.CreateInstance(__uuidof(DOMDocument60)); pDocument->selectSingleNode(_T("//anchor[@xml:id='n

Ubuntu 14 装了opencv3.0想换回2.X版本 求方法

问题描述 Ubuntu 14 装了opencv3.0想换回2.X版本 求方法 Ubuntu 14 装了opencv3.0想换回2.X版本 因为在运行一代码时出现 main.cpp:16:42: fatal error: opencv2/nonfree/features2d.hpp: 没有那个文件或目录 #include 对opencv不熟悉改不了代码..想装回2.X版本 解决方案 先卸载,再用yum安装 解决方案二: 我没有在Ubuntu下装过opencv,只在Windows下装过,Window

char型为什么不能输出一个汉字?改成char[]后下面的sex输出的为什么还不对?

问题描述 char型为什么不能输出一个汉字?改成char[]后下面的sex输出的为什么还不对? struct stu { int num; char name[20]; int age; char sex[20]; float score; }stu2,stu1={101,"tiandongliang",18,'男',100}; stu2=stu1; printf("number=%dnname=%sn",stu2.num,stu2.name); printf(&q

刀塔传奇觉醒橙2冰女输出怎么样 冰女从橙0到橙2进阶攻略

英雄属性 作为传统的中排女法师,冰女肩负着 AOE 输出的重任!然而橙+2觉醒冰女的输出属性并不出众,魔法强度.法爆和忽视魔法抗性在众多中排觉醒法师中只属于中下水平.而冰女的双抗属性均超过了400,血量到达了28000+,在中排法师中比较少见,由此可见冰女是一个能够在 AOE 伤害中站在开出大招的法师. 装备需求 冰女从橙0进阶到橙+2的装备比较平滑,和大部分的法师差不多,大部分急需装备如巫毒.神圣法球和黑暗法典都是两个,其他的大件基本都是需求一个. 实战分析 冰女在刀塔传奇中长期处于板凳位置,

IOS 按照文档开始集成3.0,运行时下面就输出EMCoreLog::EMCoreLog(),求大牛

问题描述 如题,新建的项目,刚初始化完EMOptions *options = [EMOptions optionsWithAppkey:@"douser#istore"];    options.apnsCertName = @"istore_dev";    [[EMClient sharedClient] initializeSDKWithOptions:options];   然后EMError *error = [[EMClient sharedClien

ASP.NET 2.0 想说爱你不容易

asp.net 本文主要通过分析在ASP.NET 2.0中开发ASP.NET通配符映射应用程序遇到的一些问题,来说明ASP.NET 2.0中页面编译模型的不足之处.文章中如果有不妥之处,欢迎您指出. 这里所说的ASP.NET通配符映射应用程序是指在IIS中将所有请求转发至ASP.NET 2.0运行时处理(对于IIS 5.0,就是建立.*到aspnet_isapi.dll的映射),在程序中通过实现System.Web.IhttpHandlerFactory接口来处理所有请求,实现System.We

《点睛:ActionScript3.0游戏互动编程》——1.2 ColorTransform对RGB数值的操作及应用

1.2 ColorTransform对RGB数值的操作及应用 flash.geom.ColorTransform是Flash内置的一个色彩变换类.它支持色彩通道值的线性变换. 所谓线性变换,是指一次函数模式的变换:dst = src * multiplier + offset.我们可以将每个通道的值与常量进行四则运算.对于ColorTransform类而言,通道的原数值和变换后的数值存在如下关系. red(dst) = red(src) * redMultiplier + redOffset g