计算多项式1!+2!+3!+.......+n!当和超过10000时输出累加及n的值

但是题上是要求用JAVA编程呢

#include <stdio.h>

int factorial(const int &n)
{
    if (n == 1 || n == 0)
        return 1;
    return n*factorial(n - 1);
}
int main()
{
    int sum = 0, n = 1;
    int nextSum = 0;
    while (nextSum <= 10000)
    {
        sum += factorial(n);
        nextSum = sum + factorial(++n);        
    }
    printf("sum = %d, n = %d\n", sum, n);
    return 0;
}

追问

怎么看都看不懂😂,我是初学者

追答

factorial的意思是阶乘,这是一个函数,求n的阶乘就是调用factorial(n)
原题是求1到n的阶乘的和,所以把它们都加起来sum += factorial(n)
nextSum就是下一个和,这个和如果大于10000,就结束循环,并输出当前的和sum

追问

喔喔 谢谢哈

追答

满意请采纳

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-30
//对多项式1+2+4+8+16+32+...求和,总和最接近但不能超过10000.求此时累加的多项式项数,以及累积的总和//
#include<stdio.h>
int main(void)
{
int i,sum=0;
for(i=1;sum<10000;i++)
sum+=i;
sum-=--i;
i--;
printf("1+2+...+%d=%d\n",i,sum); //i为累加到多少的多项式项数,sum为累加的总和
return 0;
}
我这个是不超过10000的,你可以根据来改下。
望采纳!!!
相似回答