北洋政府国歌意思:急!求高手帮我解决C语言问题
来源:百度文库 编辑:中科新闻网 时间:2024/04/29 07:34:37
#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 ~