当前位置: 代码迷 >> Java相关 >> 计算1!+2!+3!+4!+…. + n!。
  详细解决方案

计算1!+2!+3!+4!+…. + n!。

热度:164   发布时间:2009-09-26 23:04:20.0
计算1!+2!+3!+4!+…. + n!。
计算1!+2!+3!+4!+…. + n!。

    编写程序,从键盘上输入一个正整数n(n小于20),计算1!+2!+3!+4!+…. + n!。
      设计方法:另外设计一个类提供计算某个整数n的阶乘的方法long fac(int n),以及计算1+2!+3!+4!+ n!的方法long sum(int n),然后在main方法中通过该类的对象调用sum方法,如下所示。
    class XXX
    {
    public long fac(int n)   { 。。。。代码。。。。}
    public long sum(int n)  { 。。。。代码。。。。}
    }
    public class 主类
    {
    public static void main(String[] arg)
    {
    从键盘输入一个整数n;
    通过调用XXX类的sum方法计算阶乘;
    输出阶乘和。
    }
    }
我的程序错在哪里啊?
class XXX
{
    public long fac(int n)
    {
        int a[];
        a=new int[n];
        a[i]=1;
        for(int i=0;i<n;i++)
        a[i]=a[i]*i;
        return a[i];
    }
}
public long sum(int n)
{
    int s;
    for(int k=0;k<n;k++)
    s=s+a[k];
    return s;
}
   
    public class BreakDemo
    {
        public static void main(String[] arg)
        {
            System.out.println("Input n:");
            XXX xxx=new XXX(n);
            
            System.out.println("s:"+xxx.sum(n));
        }
    }
搜索更多相关的解决方案: 计算  long  编写程序  public  正整数  

----------------解决方案--------------------------------------------------------
错的离谱了
----------------解决方案--------------------------------------------------------
回复 2楼 flamemiracle
所以麻烦大侠教我一下嘛,我JAVA课才上了一次,所以很多都不懂!
----------------解决方案--------------------------------------------------------
这个程序使用嵌套FOR循环就能做好。
内层FOR控制阶梯并且把阶梯算后的值给累计。

for(…………)
{
  for(…………)
  sum += 阶梯
}
----------------解决方案--------------------------------------------------------
import java.util.*;
class XXX
{
    public long fac(int n)
    {
        long num=1;
        for(int i=1;i<=n;i++)
            num = num*i;
        return num;
    }

public long sum(int n)
{
    long result = 0;
    for(int k=1;k<=n;k++)
    {
        result = result+fac(k);
    }
     
    return result;
}
}
     
    public class BreakDemo
    {
        public static void main(String[] arg)
        {
            System.out.println("Input n:");
            Scanner in = new Scanner(System.in);
            int n = in.nextInt();
            XXX xxx=new XXX();
            
            System.out.println("s:"+xxx.sum(n));
        }
    }
数组的使用 类的使用 对象的实例化 都要去看
----------------解决方案--------------------------------------------------------
确实错的离谱,一错把简单的事情复杂化,二错把局部变量和类变量用法用错,其实三楼的方法解决这个问题最简单
----------------解决方案--------------------------------------------------------
也错了,是四楼
----------------解决方案--------------------------------------------------------
回复 5楼 我爱JAVA1
非常感谢哦!亲一个
----------------解决方案--------------------------------------------------------
哎呀呀。。。。 这个.... 好好学习~
----------------解决方案--------------------------------------------------------
问一下,long能支持几个n!?20!就是2432902008176640000
----------------解决方案--------------------------------------------------------
  相关解决方案