急!求高手帮我解决C语言问题

来源:百度知道 编辑:UC知道 时间:2024/05/08 08:33:30
题目如下: 编程求满足不等式1!+2!+3!+....+n!小于或等于30000成立时最大n值

#include "stdio.h"
main()
{
int n;
long int m,sum;
n=0;
m=1;
sum=0;
while(sum<=30000)
{
n++;
m=m*n;
sum=sum+m;
}
n--;
printf("%d",n);

}
当终止while循环时sum的值应该大于30000,要求的是sum小于或于30000的时n的值,所以要输出n的前一位数

 
 
 
可以这样编:

#include <stdio.h>

unsigned factorial( unsigned n ) {
    return n < 2 ? 1 : n * factorial( n - 1 );
}

void main( ) {
    unsigned sum, i;
    for( sum = i = 0; sum + factorial( i ) <= 30000; i++ )
        sum += factorial( i );
    printf("The answer is %d.\n", i );
}
 
 
 

#include <stdio.h>

unsigned int fact(unsigned int n)
{