输出的 Sum 全是1。不知道哪里错了public class jiecheng
{
int n=0;
double factorial(int i)
{
long mut=1;
double s=0.0;
for(n=1;n<=i;n++)
{
mut=mut*n;
s=1/mut;
}
return s;
}
public static void main(String[] args)
{
jiecheng a=new jiecheng();
double sum=0.0;
int b=0;
for(b=1;b<21;b++)
{
int start=0;
for(start=0;start+1<b;start++)
{
int k=b-start;
System.out.print("1/"+k+"!+");
}
System.out.print("1!=");
sum=sum+a.factorial(b);
System.out.println(sum) ;
}
}
}
{
int n=0;
double factorial(int i)
{
long mut=1;
double s=0.0;
for(n=1;n<=i;n++)
{
mut=mut*n;
s=1/mut;
}
return s;
}
public static void main(String[] args)
{
jiecheng a=new jiecheng();
double sum=0.0;
int b=0;
for(b=1;b<21;b++)
{
int start=0;
for(start=0;start+1<b;start++)
{
int k=b-start;
System.out.print("1/"+k+"!+");
}
System.out.print("1!=");
sum=sum+a.factorial(b);
System.out.println(sum) ;
}
}
}
解决方案 »
- 编写坦克大战代码时出现void is an invalid type for the variable drawTank
- for语句求素数,菜鸟问题
- 急急急。菜鸟提问
- 怎么样改变组件的大小?
- 如何把别人选项卡中的东西弄到自己的选项框卡中
- 用JAVA连接串口的手机发送短信的问题
- SUN 俱乐部 QQ群:19229396 欢迎加入。。。。。。。。。。
- 请教如何写一个和WINDOWS 类似的计算器,我自己写了一个,但只能用加法,还请高手指教
- 蔡鸟提问一个问题,感觉是变量生存周期的问题
- 有没有把JAVA程序转到C的工具?
- 安装好jdk 为什么要在系统属性中设置环境变量擦了classpath?有啥用呢?
- call.addParameter("arg1", qn, ParameterMode.IN)是什么意思,要先引用什么包吗?
楼主【JAVA_mentu】截止到2008-07-31 00:26:15的历史汇总数据(不包括此帖):
发帖的总数量:13 发帖的总分数:250 每贴平均分数:19
回帖的总数量:42 得分贴总数量:16 回帖的得分率:38%
结贴的总数量:13 结贴的总分数:250
无满意结贴数:1 无满意结贴分:20
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:7.69 % 无满意结分率:8.00 %
敬礼!
取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=JAVA_mentu
程序如public class jiecheng {
int n=0;
/*
* 阶乘指从1乘以2乘以3乘以4一直乘到所要求的数。 */
double factorial(int i)
{
long mut=1;
// double s=0.0;
for(n=1;n<=i;n++)
{
mut=mut*n;
// s=1/mut;
}
return mut;
}
public static void main(String[] args)
{
jiecheng a=new jiecheng();
int b=4;
System.out.print(b+"的阶乘:");
System.out.println(a.factorial(b)) ;
long sum=0; //定义阶乘和的变量
for(int i=0;i<=b;i++){
sum+=a.factorial(i);
System.out.print(i+"!+");
}
System.out.println("="+sum);
}
}
{
mut=mut*n;
s=1/mut;
}
是不是应该 for(n=1;n<=i;n++)
{
mut=mut*n;
s+=1/mut;//有个+号在前边吧.也就是s = s+1/mut;
}
s=1/mut; 1是整形,MUT是long型,结果仍是LONG,也就是只要MUT>1,1/mut都恒等于0.然后在转化为S的double型
下面程序是改好的自己运行下,你的逻辑也错了那么一点。可以结账了应该
public class Test
{
int n=0;
double factorial(int i)
{
long mut=1;
double s=0.0;
for(n=1;n<=i;n++)
{
mut=mut*n;
}
return mut;
}
public static void main(String[] args)
{
Test a=new Test();
double sum=0.0;
int b=0;
for(b=1;b<21;b++)
{
int start=0;
for(start=0;start+1<b;start++)
{
int k=b-start;
System.out.print("1/"+k+"!+");
}
System.out.print("1!=");
sum=sum+a.factorial(b);
System.out.println(sum) ;
}
}
}
public static void main(String args[]) {
long f = 1;
long sum = 0;
for (long i = 1; i < 10; i++) {
f = f * i;
sum += f;
}
System.out.println("The result is " + sum);
}}