正确代码
#include<stdio.h>
int main()
{
int i, n;
double sum, fact; //若定义为int,会造成计算过程中类型溢出
scanf("%d", &n);
fact = 1;
sum = 0;
for(i = 1; ; i++)
{
fact *= i;
sum += fact;
if(sum >= n)
{
printf("m<=%d\n", i-1);
break;
}
}
return 0;
}
错误代码
#include<stdio.h>
int main(void)
{
int n,i;
double sum=0.0,x=1.0;
scanf("%d",&n);
for(i=1;sum<n;i++)
{
x= x*i;
sum =sum+x;
}
printf("m<=%d",i-1);
return 0;
}