20的阶乘要开到long double诶...#include <stdio.h>long double fac(int x){ long double k = 1; int i; for(i=1; i<=x; i++) { k *= i; } return k;}int main(){ int n, i; long double sum = 0; scanf("%d", &n); for(i=1; i<=n; i++) { sum += fac(i); } printf("%.0Lf\n", sum); return 0;}