NYOJ 91 阶乘之和

2014-11-24 09:00:27 · 作者: · 浏览: 0

原题链接

很经典的一道题。

阶乘和有个特点就是前n项和总比第n+1项小,这题就需要这个性质。

附ac代码:

#include 
  
   
int 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;
}