【C语言】求1!+2!+3!+......+10!

通常我们使用函数:int fun(n)实现阶乘求和功能;这次我们不用函数实现。而使用for循环。

#include <stdio.h>
int main ()
{
    int i,j,n = 1,m = 1;
    int sum = 0;
    for(i=1; i<=10; i++)
    {
        for(j=1; j<=i; j++)
        {
            if(j==i)
            {
                n = m*j;
                m = n;//记录当前阶乘的积
            }
        }
        sum += n;
    }
    printf("the sum is %d
",sum);
    return 0;
}
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

毋庸置疑,我们得到了我们想要的结果,但是此程序并不是最优化,我们可以对程序进行再优化。

#include <stdio.h>
int main ()
{
    int i,j,n = 1;
    int sum = 0;
    for(i=1; i<=10; i++)
    {
        n *= i;
        sum += n;
    }
    printf("the sum is %d
",sum);
    return 0;
}
    1 2 3 4 5 6 7 8 9 10 11 12 13

是不是觉得程序看起来没那么多冗余的部分了!理解之后,记得自己上机运行一下哟~~~

经验分享 程序员 微信小程序 职场和发展