原題鏈接
很經典的一道題。
階乘和有個特點就是前n項和總比第n+1項小,這題就需要這個性質。
附ac代碼:
#includeint a[11]; int jie(int n){ //計算階乘 int i, s = 1; for(i = 2; i <= n; ++i) s *= i; return s; } int main(){ int i; for(i = 1; i != 11; ++i) a[i] = jie(i); int t, n; scanf("%d", &t); while(t-- && scanf("%d", &n)){ for(i = 9; i; --i) if(n >= a[i]) n -= a[i]; n == 0 ? printf("Yes\n") : printf("No\n"); } return 0; }