当前位置: 代码迷 >> Java相关 >> [求助]求1/1!+1/2!+1/3!+……+1/20!
  详细解决方案

[求助]求1/1!+1/2!+1/3!+……+1/20!

热度:106   发布时间:2006-04-13 18:38:00.0
[求助]求1/1!+1/2!+1/3!+……+1/20!

求1/1!+1/2!+1/3!+……+1/20!
谁能帮我解答一下!


----------------解决方案--------------------------------------------------------

已经知道了!
//应用程序,文件名为a.java
public class a
{
public static void main(String args[])
{
float r=1;float n=0;
for (int i=1;i<=20;i++)
{
r=r*i;
n +=1/r;
}
System.out.println(n);
}
}


----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
private int factorial(int i){//实现阶乘
if(i==1)
return 1;
else
return factorial(i-1)*i;
}
用这个方法自己去实现吧
----------------解决方案--------------------------------------------------------

挺好的.努力.


----------------解决方案--------------------------------------------------------


我只能表达出这个意思了!


----------------解决方案--------------------------------------------------------
那个表达是不对的啦
----------------解决方案--------------------------------------------------------

public class jiechenghe1
{
public static void main(String args[])
{
float n=0;
for (int i=1;i<=20;i++)
{
n+=1/factorial(i);
}
System.out.println(n);
}
public static int factorial(int i){//实现阶乘
if(i==1)
return 1;
else
return factorial(i-1)*i;
}

}
为什么用这个方法运行结果是1.0???


----------------解决方案--------------------------------------------------------
楼上碰到的又是基础问题哦~!
仔细看哦~~!

public class jiechenghe1
{
public static void main(String args[])
{
float n=0;
for (int i=1;i<=20;i++)
{
n+=1/factorial(i);//这个方法返回一个整数 两个整数 相除 会返回一个整数拉 这该知道吧
}
System.out.println(n);
}
public static int factorial(int i)//把这个方法的返回值类型 改成 float 不就好了么~~小问题拉~~
//出现这种错误的时候 马上就应该想到 是数据类型的问题拉~~
{
if(i==1)
return 1;
else
return factorial(i-1)*i;
}
}


----------------解决方案--------------------------------------------------------
呵呵!学姐,你好呖哦(厉害的意思)!
----------------解决方案--------------------------------------------------------
  相关解决方案