日期:2014-05-17  浏览次数:20727 次

一个数组越界问题,没看懂
long nfact = 1;
            long ncom = Int64.Parse("2000");
            long ncur = 1;
            for (ncur = 1; ncur <= ncom; ncur++)
            {
                checked
                {
                    Console.WriteLine(ncur);
                    nfact *= ncur;
                }
            }
            Console.WriteLine("{0}! is {1}",ncom,nfact);

为什么运行到21,算数计算过程越界

------解决方案--------------------
首先哪有数组越界,明显是数值溢出,超过long,Maxvalue。 你这是求阶乘。