| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1508 人关注过本帖
标题:计算1!+2!+3!+4!+…. + n!。
只看楼主 加入收藏
SQQ1
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2009-9-26
结帖率:0
收藏
已结贴  问题点数:0 回复次数:7 
计算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));
        }
    }
搜索更多相关主题的帖子: 正整数 
2009-09-26 22:59
柠檬可乐
Rank: 4
等 级:业余侠客
威 望:6
帖 子:66
专家分:205
注 册:2009-6-16
收藏
得分:5 
应该是long fac()函数出错了吧
2009-09-26 23:21
SQQ1
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2009-9-26
收藏
得分:0 
回复 2楼 柠檬可乐
麻烦你帮我把程序改对好吗?我真的不知道怎么做!
2009-09-26 23:29
yuning017
Rank: 1
等 级:新手上路
帖 子:12
专家分:6
注 册:2009-9-11
收藏
得分:5 
for(int i=0;i<n;i++)
        a[i]=a[i]*i;


0的情况没有去除 结果是0
2009-09-27 10:13
freish
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1223
专家分:437
注 册:2007-6-1
收藏
得分:5 
你的n一大,程序就出错了,试试n等于100

[url=http://shop63425653./]/cvbnm/a6/1d/f4/7dd1720119cf3b1dcfb570b467b24051.jpg" border="0" />[/url]
2009-09-27 12:07
我爱JAVA1
Rank: 2
等 级:论坛游民
帖 子:27
专家分:22
注 册:2009-9-9
收藏
得分:5 
楼主 我觉得你要好好的把类的定义与使用 还有方法的使用要去弄明白
我写的代码:
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));
        }
    }

希望可以给你帮助
2009-09-27 12:58
kjf_x
Rank: 1
等 级:新手上路
帖 子:39
专家分:5
注 册:2008-7-3
收藏
得分:0 
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;
}
最佳算法:
    int s;
    for(int k=n;k>0;k--)
    s=(s+1)*k;
    return s;
2009-10-11 18:19
lampeter123
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:0 
以下是引用freish在2009-9-27 12:07:06的发言:

你的n一大,程序就出错了,试试n等于100
用java.math包中的BigInteger类,可以计无穷大的n!

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2009-10-12 08:16
快速回复:计算1!+2!+3!+4!+…. + n!。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020513 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved