题解 | #Sum of Factorials#

Sum of Factorials

https://www.nowcoder.com/practice/42cb1c7f7344466b8cb1710cb12d06b1

#include <bits/stdc++.h>
#define MAX 1000
using namespace std;

int main(){
	int dp[MAX];//vector<int>
	int n,i;
	dp[0] = 1;
	for(i = 1; i <= 10; i++)
		dp[i] = dp[i-1] * i;
		
	while(cin>>n){
		for(i = 10;dp[i] > n; i--);
		for(;i >= 0; i--){
			if(dp[i] <= n)
				n -= dp[i];
			if(n == 0){
				cout<<"YES"<<endl;
				break;
			}
		}
		if(n > 0 || i < 0)
			cout<<"NO"<<endl;	
	}
}

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务