北洋政府国歌意思:急!求高手帮我解决C语言问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 07:34:37
题目如下: 编程求满足不等式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)
{
if(n <= 1)
{
return 1;
}
return n * fact(n - 1);
}

int main()
{
unsigned int result = 0;
int i = 0;
for(i = 0; result <= 30000; i++)
{
result += fact(i);
}
printf("i is %d", i - 1);
}

qiang ~