注册 登录
编程论坛 C语言论坛

新手小白求解n的阶乘之和的问题!

anmi夏轩 发布于 2020-09-15 21:43, 1753 次点击
新手小白求解n的阶乘之和的问题!当输入n为6时,结果为什么是1!+2!+…+6!=8?
using System;

namespace 实验EX1_1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入正整数n");
            String str = Console.ReadLine();
            int n = Convert.ToInt32(str);
            int sum = 0,i,j;
            for (i = 1; i <= n; i++) ;
            {
                int flag = 1;
                for (j = 0; j <= i; j++) ;
                {
                    flag *= j;
                }
                sum += flag;
            }
            Console.WriteLine("1!+2!+...+{0}!={1}", n, sum);
            Console.ReadLine();
        }
    }
}
2 回复
#2
八画小子2020-09-15 22:24
首先,这个是C#问题,所以你问错地方了。
其次,你的代码中存在一个语法错误和一个逻辑错误。
语法错误:for循环那两行的后面是不应该加分号的,除非你确定你需要这么做,但你的代码显然不需要。
逻辑错误:在计算阶乘的时候,j的初始值应该从1开始,而非0开始。

程序代码:
static void Main(string[] args)
        {
            Console.WriteLine("请输入正整数n");
            String str = Console.ReadLine();
            int n = Convert.ToInt32(str);
            int sum = 0, i, j;
            for (i = 1; i <= n; i++)
            {
                int flag = 1;
                for (j = 1; j <= i; j++)
                {
                    flag *= j;
                }
                sum += flag;
            }
            Console.WriteLine("1!+2!+...+{0}!={1}", n, sum);
            Console.ReadLine();
        }
#3
anmi夏轩2020-09-15 22:30
回复 2楼 八画小子
我知道了,谢谢!
1