求阶乘的和为多少??

例如求1!+2!+3!…10!等于多少?那我大佬可以为我解决一下。


#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\n",sum);
    return 0;
}

img

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int i = 0;
    int ret = 1;
    int sum = 0;
    for (i = 1; i <= 10; i++)
    {
        ret *= i;//ret=ret*i
        sum += ret;//sum=sum+ret
    }
    printf("sum = %d\n", sum);
    system("pause");
    return 0;
}

https://blog.csdn.net/Sunshine_R9H15Chen/article/details/78507125?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%B1%82%E9%98%B6%E4%B9%98&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-78507125.nonecase&spm=1018.2226.3001.4187

法一:循环实现


#include<stdio.h>
int main()
{
    int n;
    printf("请输入要求阶乘和的数:\n");
    scanf("%d",&n);
    
    int sum=0;
    int cheng=1;
    int i,j;
    
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=i;j++)
        {
            cheng*=j;
        }
        sum+=cheng;
        cheng=1;
    }
    
    printf("%d的阶乘是%d",n,sum);
    return 0;
}

法二:递归实现

#include<stdio.h>
int digui(int n);
int main()
{
    int n;
    printf("请输入要求阶乘和的数:\n");
    scanf("%d",&n);
    
    int i;
    int sum=0;
    
    for(i=1;i<=n;i++)
    {
        sum+=digui(i);
    }
    
    printf("%d的阶乘是%d",n,sum);
    return 0;
}
int digui(int n)
{
    if(n==1)
    {
        return 1;
    }
    else if(n>1)
    {
        return n*digui(n-1);
    }
}


有帮助的话记得采纳一下哦!谢谢!

#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 0;
int ret = 1;
int sum = 0;
for (i = 2; i <= 10; i++)
{
ret = i;//ret=reti
sum += ret;//sum=sum+ret
}
printf("sum = %d\n", sum);
system("pause");
return 0;
}