你不是求20以内的阶乘?你这个算法好像是1!+2!+...n!# include "stdio.h"void main() { int n,i,j; long sum; sum=1; printf("please enter a number:"); scanf("%d",&n); for(i=1;i<=n;i++) sum*=i ;printf("%d的阶乘是%d",n,sum); } 如果我理解的不错的话,以上就是程序。如果你是求1!+2!+...+n!的话,就不是了,你的意思是?
第2个回答 2013-10-25
用long double就不会溢出了 # include "stdio.h" void main() { int n,i,j; long double sum=0; //这里把类型改下 double t = 1; printf("please enter a number:"); scanf("%d",&n); for(i=0;i<n;t=1,i++) { for(j=n-i;j>0;j--) { t*=j; }