c语言编程 求n到m阶乘之和 n!+(n+1)!+…+m!

2024-11-29 23:31:20
推荐回答(4个)
回答1:

#include
#include

unsigned long long jc(unsigned long long n)
{
     if(n==0 || n==1) return 1;
     return n*jc(n-1);
}

int main()
{
    int n,m;
    unsigned long long res=0;
    while(1){
        printf("ÇëÊäÈëÁ½¸öÕûÊýnºÍm£¨0<=n<=m<=10£©:\n");
        scanf("%d %d",&n,&m);
        if(n==-1 && m==-1) break;
        int i;
        res=0;
        for(i=n;i<=m;i++)
        {
            res= res+jc(i);
        }
        printf("%u\n",res);
    }
    system("pause");
    return 0;
}

回答2:

#include 
int sum(int n, int m) {
    int i =n;
    int sum = 0;
    if (n > m)
        return -1;
    else {
        for(; i <=m; i++) {
            sum += jiecheng(i);
        }
    }
    return sum;
}
int jiecheng(int n) {
    int i = 1;
    int muti= 1;
    if (n >= 1) {
        for (;i <= n; i++) {
            muti *= i;
        }
    }
    return muti;
}
int main() {
    printf("%d\n",sum(2, 3));
    return 0;
}

回答3:

阶乘用迭代,然后循环相加即可。

如图(注意:输入两个数的时候用空格隔开):

回答4:

n和m的值有没有范围,对于运行时间有没有要求?