注册 登录
编程论坛 C# 论坛

求 1 !+2 !+……+N !,如何进行优化程序??

lxsxd 发布于 2014-08-30 12:23, 713 次点击
一、题目
4-1:利用静态方法,从优化程序性能的角度来计算1!+2!+……+N!的值。
二、我的努力
namespace 书本练习题
{
    public class Numbercount
    {
        public static int sumhe;
        public static int sum(int x)
        {
            int m=0,n=1;
            for(int i=1;i<=x;i++)
            {
                for(int j=1;j<=i;j++)
                {
                    n=n*j;
                }
                m=m+n;
                n = 1;
            }
            return m;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Console .WriteLine ("请输入一个大于1的正整数:");
            int number = Convert .ToInt32 (Console .ReadLine ());
            Numbercount .sumhe = Numbercount .sum (number );
            Console.WriteLine ("{0}!的值为:{1}",number ,Numbercount .sumhe);

            Console.ReadKey();
        }
    }
}

三、困惑
题目的要求是,从优化程序的角度计算阶乘的值。我不知道该如何做?请高手大侠们赐教,小虾在此有礼了。先谢谢了!
3 回复
#2
lxsxd2014-08-30 16:04
大家好
------
有网上高手已经帮我解决这个问题。现将代码公布如下:
namespace 书本练习题
{
    public class Numbercount
    {
        public static int sum(int x)
        {
            int m = 0, n = 1;
                for (int i = 1; i <= x; i++)
                {
                    n = n * i;
                    Console.WriteLine("值为:{0}",n);
                    m = m + n;
                }
            return m;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Console .WriteLine ("请输入一个大于1的正整数:");
            int number = Convert .ToInt32 (Console .ReadLine ());
            int sumber = Numbercount .sum (number );
            Console.WriteLine ("{0}!的值为:{1}",number ,sumber);

            Console.ReadKey();
        }
    }
}
#3
邓士林2014-08-30 18:12
这个谈不上优化,顶多就是正常点考虑,是你考虑多了,其实感觉C#语言真不是做这些算法题目首选的语言,总感觉有点别扭,做这些算法题目一般C/C++居多,
#4
zklhp2014-08-30 23:55
C#好像有大数库或者大数类一类的东东罢
1